PREGISTER_NOTIFICATION_EVENT callback function (hdaudio.h)

The RegisterNotificationEvent routine registers a kernel event so that it can receive DMA progress notifications.

The function pointer type for a RegisterNotificationEvent routine is defined as follows.

Syntax

PREGISTER_NOTIFICATION_EVENT PregisterNotificationEvent;

NTSTATUS PregisterNotificationEvent(
  [in] PVOID _context,
  [in] HANDLE Handle,
  [in] PKEVENT NotificationEvent
)
{...}

Parameters

[in] _context

Specifies the context value from the Context member of the HDAUDIO_BUS_INTERFACE_V2 structure.

[in] Handle

Handle that identifies the DMA engine. This handle value was obtained from a previous call to AllocateCaptureDmaEngine or AllocateRenderDmaEngine.

[in] NotificationEvent

A pointer to a kernel event that must be notified as DMA progresses. Depending on the notification count parameter that is used with AllocateDmaBufferWithNotification, the registered event is signaled one or two times for every time that the DMA passes through the audio buffer.

Return value

RegisterNotificationEvent returns STATUS_SUCCESS if the call successfully registers the event. Otherwise, the routine returns STATUS_INSUFFICIENT_RESOURCES to indicate that there are insufficient resources that are available to complete the operation.

Remarks

RegisterNotificationEvent registers a kernel event with the HD Audio bus driver. The HD Audio bus driver maintains a list of registered notification events for each DMA engine, and signals them every time that the engine receives an IOC interrupt. Events are unregistered by using UnregisterNotificationEvent.

Requirements

Requirement Value
Minimum supported client Available in Windows Vista and later versions of Windows.
Target Platform Desktop
Header hdaudio.h (include Hdaudio.h)
IRQL PASSIVE_LEVEL

See also

AllocateCaptureDmaEngine

AllocateDmaBufferWithNotification

AllocateRenderDmaEngine

HDAUDIO_BUS_INTERFACE_V2

UnregisterNotificationEvent