Recupero di un oggetto DDI HDAUDIO_BUS_INTERFACE_V2

La tabella seguente illustra i valori dei parametri di input scritti dal driver di funzione nel IRP_MN_QUERY_INTERFACE IOCTL per ottenere una struttura HDAUDIO_BUS_INTERFACE_V2 e un oggetto di contesto per la versione di HD Audio DDI definita da questa struttura.

Parametro Valore

GUID CONST *InterfaceType

GUID_HDAUDIO_BUS_INTERFACE_V2

Dimensioni USHORT

sizeof(HDAUDIO_BUS_INTERFACE_V2)

Versione di USHORT

0x0100

Interfaccia PINTERFACE

Puntatore alla struttura HDAUDIO_BUS_INTERFACE_V2

Interfaccia PVOIDSpecificData

NULL

Il driver di funzione alloca lo spazio di archiviazione per la struttura HDAUDIO_BUS_INTERFACE_V2 e include un puntatore a questa struttura in IOCTL. Nella tabella precedente viene eseguito il cast del puntatore alla struttura HDAUDIO_BUS_INTERFACE_V2 al tipo PINTERFACE, ovvero un puntatore a una struttura di tipo INTERFACE. I nomi e i tipi dei primi cinque membri di HDAUDIO_BUS_INTERFACE_V2 corrispondono a quelli dei cinque membri di INTERFACE. HDAUDIO_BUS_INTERFACE_V2 contiene membri aggiuntivi che sono puntatori a funzioni alle routine DDI. In risposta alla ricezione dell'IOCTL dal driver di funzione, il driver del bus AUDIO HD popola la struttura HDAUDIO_BUS_INTERFACE_V2 .

Nella tabella seguente vengono illustrati i valori scritti dal driver del bus audio HD nei primi cinque membri della struttura HDAUDIO_BUS_INTERFACE_V2 .

Membro Valore

Dimensioni USHORT

sizeof(HDAUDIO_BUS_INTERFACE_V2)

Versione di USHORT

0x0100

Contesto PVOID

Informazioni di contesto che devono essere passate come primo parametro di chiamata a ogni routine DDI.

PINTERFACE_REFERENCE InterfaceReference

Puntatore a una routine che incrementa il conteggio dei riferimenti dell'oggetto contesto.

InterfaceDereference PINTERFACE_DEREFERENCE

Puntatore a una routine che decrementa il conteggio dei riferimenti dell'oggetto contesto.

Nella tabella precedente, il membro Context punta a un oggetto contesto contenente informazioni specifiche per l'istanza specifica della baseline HD Audio DDI. Il client ottiene questa baseline HD Audio DDI da IOCTL. Quando il driver di funzione client chiama una delle routine nell'oggetto DDI, deve sempre specificare il valore del membro Context come primo parametro di chiamata. Le informazioni sul contesto sono opache per il client. Il driver del bus audio HD crea un oggetto contesto diverso per ogni client. Quando l'oggetto contesto non è più necessario, il client libera l'oggetto di contesto chiamando la routine InterfaceDereference illustrata nella tabella precedente. Se necessario, un client può creare riferimenti aggiuntivi all'oggetto chiamando la routine InterfaceDereference , ma il client è responsabile del rilascio di questi riferimenti quando non sono più necessari.