Compartir a través de


Obtención de un objeto DDI de HDAUDIO_BUS_INTERFACE_BDL

Como se explicó anteriormente, el controlador de función para un códec de audio o módem obtiene una referencia contada a un objeto con un DDI de audio HD enviando un IRP_MN_QUERY_INTERFACE IOCTL al controlador de bus de audio HD.

En la tabla siguiente se muestran los valores de parámetro de entrada que el controlador de función escribe en el IOCTL para obtener una estructura HDAUDIO_BUS_INTERFACE_BDL y un objeto de contexto para la versión de la DDI de audio HD que define esta estructura.

Parámetro Value

GUID CONST *InterfaceType

GUID_HDAUDIO_BUS_INTERFACE_BDL

Tamaño de USHORT

sizeof(HDAUDIO_BUS_INTERFACE_BDL)

Versión de USHORT

0x0100

Interfaz PINTERFACE

Puntero a HDAUDIO_BUS_INTERFACE_BDL estructura

PvOID InterfaceSpecificData

NULL

El controlador de función asigna el almacenamiento para la estructura de HDAUDIO_BUS_INTERFACE_BDL e incluye un puntero a esta estructura en el IOCTL. En la tabla anterior, el puntero a la estructura HDAUDIO_BUS_INTERFACE_BDL se convierte en el tipo PINTERFACE, que es un puntero a una estructura de tipo INTERFACE. Los nombres y tipos de los cinco primeros miembros de HDAUDIO_BUS_INTERFACE_BDL coinciden con los de los cinco miembros de INTERFACE. HDAUDIO_BUS_INTERFACE_BDL contiene miembros adicionales que son punteros de función a las rutinas DDI. En respuesta a la recepción del IOCTL del controlador de función, el controlador del bus de audio HD rellena toda la estructura de HDAUDIO_BUS_INTERFACE_BDL .

En la tabla siguiente se muestran los valores que escribe el controlador del bus de audio HD en los cinco primeros miembros de la estructura HDAUDIO_BUS_INTERFACE_BDL .

Miembro Valor

Tamaño de USHORT

sizeof(HDAUDIO_BUS_INTERFACE_BDL)

Versión de USHORT

0x0100

Contexto PVOID

Información de contexto que debe pasarse como primer parámetro de llamada a cada rutina DDI

PINTERFACE_REFERENCE InterfaceReference

Puntero a una rutina que incrementa el recuento de referencias del objeto de contexto

PINTERFACE_DEREFERENCE InterfaceDereference

Puntero a una rutina que disminuye el recuento de referencias del objeto de contexto

En la tabla anterior, el miembro Context apunta a un objeto de contexto que contiene información específica de la instancia concreta de la versión HDAUDIO_BUS_INTERFACE_BDL de la DDI que obtiene el cliente del IOCTL. Como se explicó anteriormente, al llamar a cualquiera de las rutinas de DDI, el controlador de funciones cliente siempre debe especificar el valor del puntero Context como primer parámetro de llamada.