función de devolución de llamada PREGISTER_EVENT_CALLBACK (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 de un RegisterEventCallback rutina se define de la manera siguiente.
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_V2o 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 siguiente sección Comentarios.
[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 de bus de HD Audio 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 siguiente sección Comentarios.
Valor devuelto
RegisterEventCallback devuelve STATUS_SUCCESS si la llamada se registra correctamente en 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 |
---|---|
|
Indica que no hay suficientes recursos disponibles para completar la operación. |
Observaciones
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 BUS de HD Audio 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 bus 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 de 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 | Valor |
---|---|
de la plataforma de destino de | Escritorio |
encabezado de | hdaudio.h (incluya Hdaudio.h) |
irQL | PASSIVE_LEVEL (consulte la sección Comentarios) |