Share via


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

La rutina RegisterNotificationCallback registra una rutina de devolución de llamada para que pueda recibir notificaciones de progreso de DMA con información de tiempo más precisa.

Sintaxis

PREGISTER_NOTIFICATION_CALLBACK PregisterNotificationCallback;

NTSTATUS PregisterNotificationCallback(
  PVOID _context,
  HANDLE Handle,
  PDEVICE_OBJECT Fdo,
  PHDAUDIO_DMA_NOTIFICATION_CALLBACK NotificationCallback,
  PVOID CallbackContext
)
{...}

Parámetros

_context

Especifica el valor de contexto del miembro Context de la estructura HDAUDIO_BUS_INTERFACE_V3 .

Handle

Identificador que identifica el motor DMA. Este valor de identificador se obtuvo de una llamada anterior a AllocateCaptureDmaEngine o AllocateRenderDmaEngine.

Fdo

FDO que posee la devolución de llamada. El controlador hdaudbus tomará una referencia en este FDO mientras se registra la devolución de llamada para asegurarse de que la rutina de devolución de llamada es válida.

NotificationCallback

Rutina de devolución de llamada a la que se llamará para notificar al controlador a medida que DMA progresa. Según el parámetro de recuento de notificaciones que se usa con AllocateDmaBufferWithNotification, el evento registrado se señala una o dos veces cada vez que DMA pasa a través del búfer de audio.

CallbackContext

Valor de contexto específico del controlador para la rutina de devolución de llamada.

Valor devuelto

RegisterNotificationCallback devuelve STATUS_SUCCESS si la llamada registra correctamente el evento. De lo contrario, la rutina devuelve STATUS_INSUFFICIENT_RESOURCES para indicar que no hay recursos suficientes disponibles para completar la operación.

Para obtener más información, vea Valores NTSTATUS.

Comentarios

RegisterNotificationCallback registra la rutina de devolución de llamada de notificación con el controlador hd Audio bus. El controlador hd Audio bus mantiene una lista de los eventos de notificación registrados y rutinas de devolución de llamada para cada motor DMA. Cada vez que el motor recibe una interrupción de IOC, se indicarán todos los eventos y se llamará a todas las rutinas de devolución de llamada de notificación en IRQL=DPC con la marca de tiempo de QPC en el momento en que se produjo el IOC.

Las rutinas de devolución de llamada de notificación no se registran llamando a UnregisterNotificationCallback con los mismos valores NotificationCallback y CallbackContext.

El controlador del bus hd audio mantendrá una referencia en el FDO después del registro hasta que se llame a la anulación del registro coincidente.

Requisitos

Requisito Value
Cliente mínimo compatible 19H1
Encabezado hdaudio.h (incluye hdaudio.h)
IRQL PASSIVE_LEVEL

Consulte también

HDAUDIO_BUS_INTERFACE_V3

PREGISTER_NOTIFICATION_CALLBACK función de devolución de llamada

hdaudio.h