Получение объекта DDI HDAUDIO_BUS_INTERFACE_V2
В следующей таблице показаны значения входных параметров, которые драйвер функции записывает в IRP_MN_QUERY_INTERFACE IOCTL для получения структуры HDAUDIO_BUS_INTERFACE_V2 и контекстного объекта для версии HD Audio DDI, определяемой этой структурой.
Параметр | Значение |
---|---|
GUID CONST *InterfaceType |
GUID_HDAUDIO_BUS_INTERFACE_V2 |
Размер USHORT |
sizeof(HDAUDIO_BUS_INTERFACE_V2) |
Версия USHORT |
0x0100 |
Интерфейс PINTERFACE |
Указатель на структуру HDAUDIO_BUS_INTERFACE_V2 |
PvOID InterfaceSpecificData |
NULL |
Драйвер функции выделяет хранилище для структуры HDAUDIO_BUS_INTERFACE_V2 и включает указатель на эту структуру в IOCTL. В предыдущей таблице указатель на структуру HDAUDIO_BUS_INTERFACE_V2 приводится к типу PINTERFACE, который является указателем на структуру типа INTERFACE. Имена и типы первых пяти элементов HDAUDIO_BUS_INTERFACE_V2 совпадают с именами пяти членов ИНТЕРФЕЙСА. HDAUDIO_BUS_INTERFACE_V2 содержит дополнительные члены, которые являются указателями функций на подпрограммы DDI. В ответ на получение IOCTL от драйвера функции драйвер шины HD Audio заполняет структуру HDAUDIO_BUS_INTERFACE_V2 .
В следующей таблице показаны значения, которые драйвер шины HD Audio записывает в первые пять элементов структуры HDAUDIO_BUS_INTERFACE_V2 .
Член | Значение |
---|---|
Размер USHORT |
sizeof(HDAUDIO_BUS_INTERFACE_V2) |
Версия USHORT |
0x0100 |
Контекст PVOID |
Сведения о контексте, которые должны передаваться в качестве первого параметра вызова каждой подпрограмме DDI. |
PINTERFACE_REFERENCE InterfaceReference |
Указатель на подпрограмму, которая увеличивает число ссылок объекта контекста. |
PINTERFACE_DEREFERENCE InterfaceDereference |
Указатель на подпрограмму, которая уменьшает количество ссылок объекта контекста. |
В предыдущей таблице элемент Context указывает на объект контекста, содержащий сведения, относящиеся к конкретному экземпляру базовой конфигурации HD Audio DDI. Клиент получает этот базовый уровень HD Audio DDI из IOCTL. Когда драйвер функции клиента вызывает какие-либо подпрограммы в DDI, он должен всегда указывать значение члена Контекста в качестве параметра первого вызова. Сведения о контексте непрозрачны для клиента. Драйвер шины HD Audio создает отдельный объект контекста для каждого клиента. Если объект контекста больше не требуется, клиент освобождает объект контекста, вызывая подпрограмму InterfaceDereference , показанную в предыдущей таблице. Если это необходимо, клиент может создать дополнительные ссылки на объект, вызвав подпрограмму InterfaceDereference , но клиент отвечает за освобождение этих ссылок, когда они больше не требуются.