Поделиться через


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

Задает значение контекста из элемента Context структуры HDAUDIO_BUS_INTERFACE_V3 .

Handle

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

Fdo

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

NotificationCallback

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

CallbackContext

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

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

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

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

Комментарии

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

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

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

Требования

Требование Значение
Минимальная версия клиента 19H1
Верхняя часть hdaudio.h (включая hdaudio.h)
IRQL PASSIVE_LEVEL

См. также раздел

HDAUDIO_BUS_INTERFACE_V3

функция обратного вызова PREGISTER_NOTIFICATION_CALLBACK

hdaudio.h