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 |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈