Таблицы функций для драйверов miniport
Интерфейсы верхнего края универсального драйвера мини-порта (см. терминологию WDM Audio) состоят из таблиц функций. Некоторые не звуковые драйверы минипорта предоставляют таблицу функций драйверу порта во время регистрации, когда драйвер мини-порта сообщает драйверу порта о размере структуры контекста, который потребуется драйверу мини-порта. Драйвер порта копирует таблицу функций в некоторое частное расположение, выделяет структуру контекста и вызывает функцию инициализации в таблице функций, передавая указатель на структуру контекста.
Аналогичным образом аудиодрайверы минипорта используют таблицы функций, но они статически выделяются и не должны копироваться драйвером порта. Драйвер порта также извлекает память контекста ("объект") из указанного пула и устанавливает в контекст указатель на таблицу функций. Поскольку указатель на таблицу функций всегда является первым полем в контексте, драйверу порта требуется только указатель контекста и он может получить доступ к таблице функций через контекст.
Этот подход использовался потому, что COM предоставляет надежную, эффективную, широко понятную модель для создания абстрактных объектов. Модель драйвера аудио минипорта использует отраслевой опыт работы с COM и текст документации по COM. Объекты можно реализовать и использовать в C или C++. Язык ассемблера также можно использовать, но его следует использовать только в тех случаях, когда переносимость не требуется.