Таблицы функций для драйверов Минипорта

Интерфейсы верхнего уровня общего драйвера минипорта (см. терминологию звука WDM) состоят из таблиц функций. Некоторые незвуковые драйверы минипорта предоставляют таблицу функций драйверу порта во время регистрации, при этом драйвер минипорта сообщает драйверу порта о размере структуры контекста, которая потребуется драйверу минипорта. Драйвер портов копирует таблицу функций в некоторое внутреннее место, выделяет структуру контекста и вызывает функцию инициализации из таблицы функций, передав указатель на структуру контекста.

Аналогичным образом драйверы мини-порта аудио используют таблицы функций, но они статически выделяются и не должны быть скопированы драйвером порта. Драйвер порта также извлекает память контекста ("object") из указанного пула и вставляет указатель таблицы функций в контекст. Так как указатель таблицы функций всегда является первым полем в контексте, драйвер порта нуждается только в указателе контекста и может получить доступ к таблице функций через контекст.

Этот подход был принят, так как COM предоставляет надежную, эффективную и широко понятную модель для создания абстрактных объектов. Модель драйвера аудио минипорта использует отраслевой опыт работы с COM и литературу по COM. Объекты можно реализовать и использовать в C или C++. Язык сборки также можно использовать, но следует использовать только в тех случаях, когда переносимость не требуется.