PREGISTER_NOTIFICATION_CALLBACK回调函数 (hdaudio.h)

RegisterNotificationCallback 例程注册回调例程,以便它可以接收具有更准确的计时信息的 DMA 进度通知。

语法

PREGISTER_NOTIFICATION_CALLBACK PregisterNotificationCallback;

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

参数

_context

指定 HDAUDIO_BUS_INTERFACE_V3 结构的 Context 成员中的上下文值。

Handle

标识 DMA 引擎的句柄。 此句柄值是从以前调用 AllocateCaptureDmaEngine 或 AllocateRenderDmaEngine 获取的。

Fdo

拥有回调的 FDO。 注册回调时,hdaudbus 驱动程序将对此 FDO 进行引用,以确保回调例程有效。

NotificationCallback

将在 DMA 进行时调用以通知驱动程序的回调例程。 根据与 AllocateDmaBufferWithNotification 一起使用的通知计数参数,每次 DMA 通过音频缓冲区时,注册事件都会发出一次或两次的信号。

CallbackContext

回调例程的特定于驱动程序的上下文值。

返回值

如果调用成功注册事件,RegisterNotificationCallback 将返回STATUS_SUCCESS。 否则,例程将返回STATUS_INSUFFICIENT_RESOURCES,以指示没有足够的资源可用于完成操作。

有关详细信息,请参阅 NTSTATUS 值

注解

RegisterNotificationCallback 向 HD 音频总线驱动程序注册通知回调例程。 HD Audio 总线驱动程序为每个 DMA 引擎维护已注册的通知事件和回调例程的列表。 每次引擎收到 IOC 中断时,都会向所有事件发出信号,并且将在 IRQL=DPC 调用所有通知回调例程,并在 IOC 发生时具有 QPC 时间戳。

通过调用具有相同 NotificationCallback 和 CallbackContext 值的 UnregisterNotificationCallback 来取消注册通知回调例程。

HD Audio 总线驱动程序将在注册后对 FDO 保持引用,直到调用匹配的取消注册。

要求

要求
最低受支持的客户端 19H1
标头 hdaudio.h (包括 hdaudio.h)
IRQL PASSIVE_LEVEL

另请参阅

HDAUDIO_BUS_INTERFACE_V3

PREGISTER_NOTIFICATION_CALLBACK回调函数

hdaudio.h