Compartir a través de


Obtener un objeto DDI de HDAUDIO_BUS_INTERFACE_V2

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_V2 y un objeto de contexto para la versión de la DDI de audio HD que define esta estructura.

Parámetro Value

GUID DE CONST *InterfaceType

GUID_HDAUDIO_BUS_INTERFACE_V2

Tamaño de USHORT

sizeof(HDAUDIO_BUS_INTERFACE_V2)

Versión de USHORT

0x0100

Interfaz PINTERFACE

Puntero a HDAUDIO_BUS_INTERFACE_V2 estructura

Interfaz PVOIDSpecificData

NULL

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

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_V2 .

Miembro Valor

Tamaño de USHORT

sizeof(HDAUDIO_BUS_INTERFACE_V2)

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. El cliente obtiene esta DDI de audio HD de línea base del IOCTL. Cuando el controlador de función cliente llama a cualquiera de las rutinas de DDI, siempre debe especificar el valor del miembro 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 InterfaceDereference , pero el cliente es responsable de liberar estas referencias cuando ya no las requiera.