Recupero di un oggetto DDI HDAUDIO_BUS_INTERFACE_BDL
Come illustrato in precedenza, il driver di funzione per un codec audio o modem ottiene un riferimento conteggiato a un oggetto con un DDI audio HD inviando un IRP_MN_QUERY_INTERFACE IOCTL al driver del bus audio HD.
Nella tabella seguente vengono illustrati i valori dei parametri di input scritti dal driver di funzione in IOCTL per ottenere una struttura HDAUDIO_BUS_INTERFACE_BDL 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_BDL |
Dimensioni USHORT |
sizeof(HDAUDIO_BUS_INTERFACE_BDL) |
Versione di USHORT |
0x0100 |
Interfaccia PINTERFACE |
Puntatore alla struttura HDAUDIO_BUS_INTERFACE_BDL |
Interfaccia PVOIDSpecificData |
NULL |
Il driver di funzione alloca l'archiviazione per la struttura HDAUDIO_BUS_INTERFACE_BDL e include un puntatore a questa struttura in IOCTL. Nella tabella precedente il puntatore alla struttura HDAUDIO_BUS_INTERFACE_BDL viene eseguito il cast per digitare PINTERFACE, ovvero un puntatore a una struttura di tipo INTERFACE. I nomi e i tipi dei primi cinque membri di HDAUDIO_BUS_INTERFACE_BDL corrispondono a quelli dei cinque membri di INTERFACE. HDAUDIO_BUS_INTERFACE_BDL contiene membri aggiuntivi che sono puntatori di funzione alle routine DDI. In risposta alla ricezione dell'IOCTL dal driver di funzione, il driver del bus audio HD riempie l'intera struttura HDAUDIO_BUS_INTERFACE_BDL .
Nella tabella seguente vengono illustrati i valori scritti dal driver del bus audio HD nei primi cinque membri della struttura HDAUDIO_BUS_INTERFACE_BDL .
Membro | Valore |
---|---|
Dimensioni USHORT |
sizeof(HDAUDIO_BUS_INTERFACE_BDL) |
Versione di USHORT |
0x0100 |
Contesto PVOID |
Informazioni sul 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 |
PINTERFACE_DEREFERENCE InterfaceDereference |
Puntatore a una routine che decrementa il conteggio dei riferimenti dell'oggetto contesto |
Nella tabella precedente il membro Context punta a un oggetto contesto che contiene informazioni specifiche dell'istanza specifica della versione HDAUDIO_BUS_INTERFACE_BDL dell'DDI ottenuta dal client dall'IOCTL. Come illustrato in precedenza, quando si chiama una delle routine nella DDI, il driver di funzione client deve sempre specificare il valore del puntatore di contesto come primo parametro di chiamata.