Share via


PREGISTER_EVENT_CALLBACK función de devolución de llamada (hdaudio.h)

La rutina RegisterEventCallback registra una rutina de devolución de llamada para una respuesta no solicitada de un códec o códecs.

El tipo de puntero de función para una rutina RegisterEventCallback se define de la siguiente manera.

Sintaxis

PREGISTER_EVENT_CALLBACK PregisterEventCallback;

NTSTATUS PregisterEventCallback(
  [in]  PVOID _context,
  [in]  PHDAUDIO_UNSOLICITED_RESPONSE_CALLBACK Routine,
  [in]  PVOID Context,
  [out] PUCHAR Tag
)
{...}

Parámetros

[in] _context

Especifica el valor de contexto del miembro Context de la estructura HDAUDIO_BUS_INTERFACE, HDAUDIO_BUS_INTERFACE_V2 o HDAUDIO_BUS_INTERFACE_BDL .

[in] Routine

Puntero de función a una rutina de devolución de llamada. Este parámetro debe ser un puntero de función no NULL válido de tipo PHDAUDIO_UNSOLICITED_RESPONSE_CALLBACK. Para obtener más información, vea la sección Comentarios que se muestra más adelante.

[in] Context

Especifica un valor de contexto para la rutina de devolución de llamada. El autor de la llamada convierte el valor de contexto en el tipo PVOID. Cuando un códec genera una respuesta no solicitada que contiene la etiqueta especificada, el controlador hd Audio bus pasa el valor de contexto a la rutina de devolución de llamada como parámetro de llamada.

[out] Tag

Recupera un valor de etiqueta que identifica la respuesta no solicitada. Este parámetro apunta a una variable UCHAR asignada por el autor de la llamada en la que la rutina escribe el valor de etiqueta. El autor de la llamada debe especificar este valor de etiqueta al programar el códec o códecs para generar la respuesta no solicitada. Para obtener más información, vea la sección Comentarios que se muestra más adelante.

Valor devuelto

RegisterEventCallback devuelve STATUS_SUCCESS si la llamada se realiza correctamente al registrar el evento. De lo contrario, la rutina devuelve un código de error adecuado. En la tabla siguiente se muestra un posible código de estado de retorno.

Código devuelto Descripción
STATUS_INSUFFICIENT_RESOURCES
Indica que no hay suficientes recursos disponibles para completar la operación.

Comentarios

Esta rutina registra una rutina de devolución de llamada para una respuesta no solicitada de un códec. La rutina genera una etiqueta para identificar la respuesta no solicitada. Cuando el controlador de HD Audio Bus encuentra una respuesta no solicitada de cualquier códec con un valor de etiqueta coincidente, la rutina llama a la rutina de devolución de llamada especificada en IRQL DISPATCH_LEVEL y pasa el valor de contexto especificado a la rutina como parámetro de llamada.

Después de la llamada a RegisterEventCallback, el controlador de función es responsable de programar el códec o códecs para generar respuestas no solicitadas con la etiqueta especificada.

La rutina asigna una etiqueta única a cada rutina de devolución de llamada registrada. La asociación única entre la rutina de devolución de llamada y etiqueta persiste siempre que la rutina de devolución de llamada permanezca registrada. El controlador de función puede eliminar el registro de una rutina de devolución de llamada llamando a UnregisterEventCallback.

Actualmente, el controlador de autobús puede proporcionar hasta 64 etiquetas únicas por códec.

El parámetro de devolución de llamada es un puntero de función a una rutina de devolución de llamada en el controlador de función. El tipo de puntero de función para la rutina de devolución de llamada se define como:

typedef VOID
  (*PHDAUDIO_UNSOLICITED_RESPONSE_CALLBACK)
    (HDAUDIO_CODEC_RESPONSE, PVOID);

El primer parámetro de llamada es una estructura de tipo HDAUDIO_CODEC_RESPONSE que especifica la respuesta del códec al comando. Esta estructura se pasa por valor. El segundo parámetro de llamada es el valor callbackContext que se pasó anteriormente a RegisterEventCallback. El controlador de hd Audio bus llama a la rutina de devolución de llamada en IRQL DISPATCH_LEVEL.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado hdaudio.h (incluya Hdaudio.h)
IRQL PASSIVE_LEVEL (consulte la sección Comentarios)

Consulte también

HDAUDIO_BUS_INTERFACE

HDAUDIO_BUS_INTERFACE_BDL

HDAUDIO_BUS_INTERFACE_V2

HDAUDIO_CODEC_RESPONSE

Anular el registroEventCallback  

hdaudio.h