Compartir a través de


Obtener un objeto DDI de HDAUDIO_BUS_INTERFACE

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

Parámetro Valor

GUID DE CONST *InterfaceType

GUID_HDAUDIO_BUS_INTERFACE

Tamaño de USHORT

sizeof(HDAUDIO_BUS_INTERFACE)

Versión de USHORT

0x0100

Interfaz PINTERFACE

Puntero a HDAUDIO_BUS_INTERFACE estructura

Interfaz PVOIDSpecificData

NULL

El controlador de función asigna el almacenamiento para la estructura de HDAUDIO_BUS_INTERFACE e incluye un puntero a esta estructura en el IOCTL. En la tabla anterior, el puntero a la estructura HDAUDIO_BUS_INTERFACE 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 coinciden con los de los cinco miembros de INTERFACE. HDAUDIO_BUS_INTERFACE 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 de bus de audio HD rellena toda la estructura de HDAUDIO_BUS_INTERFACE .

En la tabla siguiente se muestran los valores que el controlador de HD Audio Bus escribe en los cinco primeros miembros de la estructura HDAUDIO_BUS_INTERFACE .

Miembro Valor

Tamaño de USHORT

sizeof(HDAUDIO_BUS_INTERFACE)

Versión de USHORT

0x0100

Contexto PVOID

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

Interfaz de PINTERFACE_REFERENCE Referencia

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 DDI de audio HD de línea base que obtiene el cliente del IOCTL. Al llamar a cualquiera de las rutinas de DDI, el controlador de función cliente siempre debe especificar el valor del puntero Context como primer parámetro de llamada. La información de contexto es opaca para el cliente. El controlador hd Audio Bus crea un objeto de contexto diferente para cada cliente. Cuando el objeto de contexto ya no es necesario, el cliente libera el objeto de contexto llamando a la rutina InterfaceDereference que se muestra en la tabla anterior. Si es necesario, un cliente puede crear referencias adicionales al objeto llamando a la rutina InterfaceReference , pero el cliente es responsable de liberar estas referencias cuando ya no las requiera.