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


функция обратного вызова 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 bus передает контекстное значение подпрограмме обратного вызова в качестве параметра вызова.

[out] Tag

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

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

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

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

Замечания

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

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

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

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

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

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

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

Требования

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

См. также

HDAUDIO_BUS_INTERFACE

HDAUDIO_BUS_INTERFACE_BDL

HDAUDIO_BUS_INTERFACE_V2

HDAUDIO_CODEC_RESPONSE

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

hdaudio.h