Abrufen eines HDAUDIO_BUS_INTERFACE_BDL DDI-Objekts

Wie bereits erläutert, ruft der Funktionstreiber für einen Audio- oder Modemcodec einen gezählten Verweis auf ein Objekt mit einem HD Audio DDI ab, indem ein IRP_MN_QUERY_INTERFACE IOCTL an den HD Audio-Bustreiber gesendet wird.

Die folgende Tabelle zeigt die Eingabeparameterwerte, die der Funktionstreiber in das IOCTL schreibt, um eine HDAUDIO_BUS_INTERFACE_BDL-Struktur und ein Kontextobjekt für die Version des HD Audio DDI abzurufen, die diese Struktur definiert.

Parameter Wert

CONST GUID *InterfaceType

GUID_HDAUDIO_BUS_INTERFACE_BDL

USHORT-Größe

sizeof(HDAUDIO_BUS_INTERFACE_BDL)

USHORT-Version

0x0100

PINTERFACE-Schnittstelle

Zeiger auf HDAUDIO_BUS_INTERFACE_BDL Struktur

PVOID-SchnittstelleSpecificData

NULL

Der Funktionstreiber weist den Speicher für die HDAUDIO_BUS_INTERFACE_BDL-Struktur zu und enthält einen Zeiger auf diese Struktur in der IOCTL. In der vorherigen Tabelle wird der Zeiger auf die HDAUDIO_BUS_INTERFACE_BDL-Struktur in den Typ PINTERFACE umgewandelt, bei dem es sich um einen Zeiger auf eine Struktur vom Typ INTERFACE handelt. Die Namen und Typen der ersten fünf Member von HDAUDIO_BUS_INTERFACE_BDL entsprechen denen der fünf Member von INTERFACE. HDAUDIO_BUS_INTERFACE_BDL enthält zusätzliche Member, die Funktionszeiger auf die DDI-Routinen sind. Als Reaktion auf den Empfang des IOCTL vom Funktionstreiber füllt der HD Audio-Bustreiber die gesamte HDAUDIO_BUS_INTERFACE_BDL-Struktur aus.

Die folgende Tabelle zeigt die Werte, die der HD Audio-Bustreiber in die ersten fünf Member der HDAUDIO_BUS_INTERFACE_BDL-Struktur schreibt.

Member Wert

USHORT-Größe

sizeof(HDAUDIO_BUS_INTERFACE_BDL)

USHORT-Version

0x0100

PVOID-Kontext

Kontextinformationen, die als erster Aufrufparameter an jede DDI-Routine übergeben werden müssen

PINTERFACE_REFERENCE InterfaceReference

Zeiger auf eine Routine, die die Verweisanzahl des Kontextobjekts erhöht

PINTERFACE_DEREFERENCE InterfaceDereference

Zeiger auf eine Routine, die die Verweisanzahl des Kontextobjekts verringert

In der obigen Tabelle verweist das Context-Element auf ein Kontextobjekt, das Informationen enthält, die für die jeweilige instance der HDAUDIO_BUS_INTERFACE_BDL Version des DDI spezifisch sind, die der Client von der IOCTL erhält. Wie bereits erläutert, muss der Clientfunktionstreiber beim Aufrufen einer der Routinen im DDI immer den Context-Zeigerwert als ersten Aufrufparameter angeben.