функция обратного вызова PREGISTER_EVENT_CALLBACK (hdaudio.h)

Подпрограмма RegisterEventCallback регистрирует подпрограмму обратного вызова для незапрашиваемого ответа от кодека или кодеков.

Тип указателя функции для подпрограммы RegisterEventCallback определяется следующим образом.

Синтаксис

PREGISTER_EVENT_CALLBACK PregisterEventCallback;

NTSTATUS PregisterEventCallback(
  [in]  PVOID _context,
  [in]  PHDAUDIO_UNSOLICITED_RESPONSE_CALLBACK Routine,
  [in]  PVOID Context,
  [out] PUCHAR Tag
)
{...}

Параметры

[in] _context

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

[in] Routine

Указатель функции на подпрограмму обратного вызова. Этот параметр должен быть допустимым, не имеющим значения NULL, указателем на функцию типа PHDAUDIO_UNSOLICITED_RESPONSE_CALLBACK. Дополнительные сведения см. в разделе "Примечания".

[in] Context

Задает значение контекста для подпрограммы обратного вызова. Вызывающий объект приводит значение контекста к типу PVOID. Когда кодек создает незапрашиваемый ответ, содержащий указанный тег, драйвер шины HD Audio передает значение контекста в подпрограмму обратного вызова в качестве параметра вызова.

[out] Tag

Извлекает значение тега, определяющее незапрашиваемый ответ. Этот параметр указывает на выделенную вызывающим объектом переменную UCHAR, в которую подпрограмма записывает значение тега. Вызывающий объект должен указать это значение тега при программировании кодека или кодеков для создания незапрашиваемого ответа. Дополнительные сведения см. в разделе "Примечания".

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

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

Код возврата Описание
STATUS_INSUFFICIENT_RESOURCES
Указывает, что для завершения операции недостаточно ресурсов.

Комментарии

Эта подпрограмма регистрирует подпрограмму обратного вызова для незапрашиваемого ответа от кодека. Подпрограмма выводит тег для идентификации незапрашиваемого ответа. Когда драйвер шины HD Audio сталкивается с нежелательным ответом от любого кодека с соответствующим значением тега, подпрограмма вызывает указанную подпрограмму обратного вызова в IRQL DISPATCH_LEVEL и передает указанное значение контекста в подпрограмму в качестве параметра вызова.

После вызова RegisterEventCallback драйвер функции отвечает за программирование кодека или кодеков для создания нежелательных ответов с указанным тегом.

Подпрограмма назначает уникальный тег каждой зарегистрированной подпрограмме обратного вызова. Уникальная связь между тегом и подпрограммой обратного вызова сохраняется до тех пор, пока подпрограмма обратного вызова остается зарегистрированной. Драйвер функции может удалить регистрацию процедуры обратного вызова, вызвав UnregisterEventCallback.

В настоящее время водитель автобуса может предоставить до 64 уникальных тегов для каждого кодека.

Параметр callback является указателем функции на подпрограмму обратного вызова в драйвере функции. Тип указателя функции для подпрограммы обратного вызова определяется следующим образом:

typedef VOID
  (*PHDAUDIO_UNSOLICITED_RESPONSE_CALLBACK)
    (HDAUDIO_CODEC_RESPONSE, PVOID);

Первый параметр вызова представляет собой структуру типа HDAUDIO_CODEC_RESPONSE , которая задает ответ кодека на команду. Эта структура передается по значению. Второй параметр вызова — это значение callbackContext , переданное ранее в RegisterEventCallback. Драйвер шины HD Audio вызывает подпрограмму обратного вызова на DISPATCH_LEVEL IRQL.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть hdaudio.h (включая Hdaudio.h)
IRQL PASSIVE_LEVEL (см. раздел "Примечания")

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

HDAUDIO_BUS_INTERFACE

HDAUDIO_BUS_INTERFACE_BDL

HDAUDIO_BUS_INTERFACE_V2

HDAUDIO_CODEC_RESPONSE

Отмена регистрацииEventCallback  

hdaudio.h