функция обратного вызова 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 .

Handle

Дескриптор, определяющий подсистему DMA. Это значение дескриптора было получено из предыдущего вызова AllocateCaptureDmaEngine или AllocateRenderDmaEngine.

Fdo

FDO, принадлежащий обратному вызову. Драйвер hdaudbus будет принимать ссылку на этот FDO во время регистрации обратного вызова, чтобы убедиться, что подпрограмма обратного вызова действительна.

NotificationCallback

Подпрограмма обратного вызова, которая будет вызвана для уведомления драйвера о ходе выполнения DMA. В зависимости от параметра счетчика уведомлений, используемого с ВыделеннымDmaBufferWithNotification, зарегистрированное событие сигнализируется один или два раза при каждом прохождении DMA через звуковой буфер.

CallbackContext

Значение контекста для конкретного драйвера для подпрограммы обратного вызова.

Возвращаемое значение

RegisterNotificationCallback возвращает STATUS_SUCCESS, если вызов успешно регистрирует событие. В противном случае подпрограмма возвращает STATUS_INSUFFICIENT_RESOURCES, чтобы указать, что для завершения операции недостаточно ресурсов.

Дополнительные сведения см. в разделе "Значения NTSTATUS".

Замечания

RegisterNotificationCallback регистрирует подпрограмму обратного вызова уведомлений с драйвером аудиошины HD. Драйвер шины HD Audio поддерживает список зарегистрированных событий уведомлений и подпрограмм обратного вызова для каждого обработчика DMA. Каждый раз, когда обработчик получает прерывание IOC, все события будут сигнализироваться, и все подпрограммы обратного вызова уведомлений будут вызываться в IRQL=DPC с меткой времени QPC в момент возникновения IOC.

Процедуры обратного вызова уведомлений отменяются путем вызова UnregisterNotificationCallback с теми же значениями NotificationCallback и CallbackContext.

Драйвер аудиошины HD будет поддерживать ссылку на FDO после регистрации, пока не будет вызвана соответствующая отмена регистрации.

Требования

Требование Ценность
Минимальный поддерживаемый клиент 19H1
Заголовок hdaudio.h (include hdaudio.h)
IRQL пассивный уровень

См. также

HDAUDIO_BUS_INTERFACE_V3

hdaudio.h