Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die folgende Tabelle zeigt die Eingabeparameterwerte, die der Funktionstreiber in die IRP_MN_QUERY_INTERFACE IOCTL schreibt, um eine HDAUDIO_BUS_INTERFACE-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 |
USHORT-Größe |
sizeof(HDAUDIO_BUS_INTERFACE) |
USHORT-Version |
0x0100 |
PINTERFACE-Schnittstelle |
Zeiger auf HDAUDIO_BUS_INTERFACE Struktur |
PVOID-SchnittstelleSpecificData |
NULL |
Der Funktionstreiber weist den Speicher für die HDAUDIO_BUS_INTERFACE-Struktur zu und enthält einen Zeiger auf diese Struktur in der IOCTL. In der obigen Tabelle wird der Zeiger auf die HDAUDIO_BUS_INTERFACE-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 entsprechen denen der fünf Member von INTERFACE. HDAUDIO_BUS_INTERFACE 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-Struktur aus.
Die folgende Tabelle zeigt die Werte, die der HD Audio-Bustreiber in die ersten fünf Member der HDAUDIO_BUS_INTERFACE-Struktur schreibt.
| Member | Wert |
|---|---|
USHORT-Größe |
sizeof(HDAUDIO_BUS_INTERFACE) |
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 den jeweiligen instance des HD Audio-Baseline-DDI spezifisch sind, den der Client aus dem IOCTL erhält. Beim Aufrufen einer der Routinen im DDI muss der Clientfunktionstreiber immer den Context-Zeigerwert als ersten Aufrufparameter angeben. Die Kontextinformationen sind für den Client undurchsichtig. Der HD Audio-Bustreiber erstellt für jeden Client ein anderes Kontextobjekt. Wenn das Kontextobjekt nicht mehr erforderlich ist, gibt der Client das Kontextobjekt frei, indem er die In der vorherigen Tabelle gezeigte InterfaceDereference-Routine aufruft. Bei Bedarf kann ein Client zusätzliche Verweise auf das -Objekt erstellen, indem er die InterfaceReference-Routine aufruft, aber der Client ist für die Freigabe dieser Verweise verantwortlich, wenn er sie nicht mehr benötigt.