Получение объекта DDI HDAUDIO_BUS_INTERFACE_BDL

Как описано ранее, драйвер-функция для звукового или модемного кодека получает подсчитываемую ссылку на объект с HD Audio DDI, отправив IRP_MN_QUERY_INTERFACE IOCTL драйверу аудиошины HD.

В следующей таблице показаны входные значения параметров, которые драйвер функции записывает в IOCTL, чтобы получить HDAUDIO_BUS_INTERFACE_BDL структуру и объект контекста для версии HD Audio DDI, определяемой этой структурой.

Параметр Ценность

CONST GUID *InterfaceType

GUID_HDAUDIO_BUS_INTERFACE_BDL

USHORT Размер

размер(HDAUDIO_BUS_INTERFACE_BDL)

USHORT версии

0x0100

PINTERFACE Интерфейс

Указатель на структуру HDAUDIO_BUS_INTERFACE_BDL

PvOID InterfaceSpecificData

NULL

Драйвер функции выделяет хранилище для структуры HDAUDIO_BUS_INTERFACE_BDL и включает указатель на эту структуру в IOCTL. В предыдущей таблице указатель на структуру HDAUDIO_BUS_INTERFACE_BDL приведен к типу PINTERFACE, который является указателем на структуру типа INTERFACE. Имена и типы первых пяти членов HDAUDIO_BUS_INTERFACE_BDL соответствуют именам и типам пяти членов INTERFACE. HDAUDIO_BUS_INTERFACE_BDL содержит дополнительные элементы, которые являются указателями на функции подпрограмм DDI. В ответ на получение IOCTL от функционального драйвера, драйвер шины HD Audio заполняет всю структуру HDAUDIO_BUS_INTERFACE_BDL.

В следующей таблице показаны значения, которые драйвер аудиошины HD записывает в первые пять элементов структуры HDAUDIO_BUS_INTERFACE_BDL.

Член Ценность

УСШОРТ Размер

размер(HDAUDIO_BUS_INTERFACE_BDL)

Версия USHORT

0x0100

контекста PVOID

Сведения о контексте, которые необходимо передать в качестве первого параметра вызова для каждой подпрограммы DDI

PINTERFACE_REFERENCE InterfaceReference

Указатель на подпрограмму, которая увеличивает число ссылок объекта контекста

PINTERFACE_DEREFERENCE InterfaceDereference

Указатель на подпрограмму, которая уменьшает число ссылок объекта контекста

В предыдущей таблице член контекста указывает на объект, содержащий сведения, относящиеся к конкретному экземпляру версии DDI HDAUDIO_BUS_INTERFACE_BDL, полученной клиентом из IOCTL. Как описано ранее при вызове любой из подпрограмм в DDI, драйвер клиентской функции должен всегда указывать значение указателя Context в качестве первого параметра вызова.