функция обратного вызова 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, если вызов успешно регистрирует событие. В противном случае подпрограмма возвращает соответствующий код ошибки. В следующей таблице показан возможный код состояния возврата.
Код возврата | Описание |
---|---|
|
Указывает, что для завершения операции недостаточно ресурсов. |
Комментарии
Эта подпрограмма регистрирует подпрограмму обратного вызова для незапрашиваемого ответа от кодека. Подпрограмма выводит тег для идентификации незапрашиваемого ответа. Когда драйвер шины 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 (см. раздел "Примечания") |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по