Recupero di un oggetto DDI HDAUDIO_BUS_INTERFACE

Nella tabella seguente vengono illustrati i valori dei parametri di input scritti dal driver di funzione nella IRP_MN_QUERY_INTERFACE IOCTL per ottenere una struttura HDAUDIO_BUS_INTERFACE 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

Dimensioni USHORT

sizeof(HDAUDIO_BUS_INTERFACE)

Versione di USHORT

0x0100

Interfaccia PINTERFACE

Puntatore alla struttura HDAUDIO_BUS_INTERFACE

Interfaccia PVOIDSpecificData

NULL

Il driver di funzione alloca lo spazio di archiviazione per la struttura HDAUDIO_BUS_INTERFACE e include un puntatore a questa struttura in IOCTL. Nella tabella precedente il puntatore alla struttura HDAUDIO_BUS_INTERFACE 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 corrispondono a quelli dei cinque membri di INTERFACE. HDAUDIO_BUS_INTERFACE 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 .

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

Membro Valore

Dimensioni USHORT

sizeof(HDAUDIO_BUS_INTERFACE)

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 dell'audio HD DDI di base ottenuta dal client da IOCTL. Quando si chiama una delle routine nell'DDI, il driver di funzione client deve sempre specificare il valore del puntatore di contesto 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 context non è più necessario, il client libera l'oggetto contesto chiamando la routine InterfaceDereference illustrata nella tabella precedente. Se necessario, un client può creare riferimenti aggiuntivi all'oggetto chiamando la routine InterfaceReference , ma il client è responsabile del rilascio di questi riferimenti quando non è più necessario.