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


структура KSJACK_DESCRIPTION3

В операционных системах Windows версии 22H2 и более поздних версиях KSJACK_DESCRIPTION3 структура может использоваться для указания и изменения текущей конфигурации разъема.

Синтаксис

typedef struct _tagKSJACK_DESCRIPTION3
{
  ULONG              ConfigId; 

} KSJACK_DESCRIPTION3, *PKSJACK_DESCRIPTION3;

Члены

ConfigId

Битовая маска или перечисление драйвера, описывающие текущую конфигурацию. Изменение этого значения приводит к обновлению кэша audioendpointbuilder, чтобы убедиться, что опубликованная конечная точка соответствует текущей конфигурации.

Комментарии

Использование KSJACK_DESCRIPTION3 для передачи изменений звуковых устройств

Аудиосистема Windows кэширует возможности звуковых устройств во время создания конечной точки звука. Эти кэшированные значения предназначены для таких возможностей, как наличие звукового модуля HW, поддержка формата, идентификатор контейнера, характеристики размера буфера и т. д. Эти кэшированные значения сохраняются в течение всего срока установки Windows. Они обновляются только при обновлении звукового драйвера или во время обновления ОС.

При KSJACK_DESCRIPTION3 аудиосистема Windows предоставляет звуковому драйверу механизм для запроса на удаление и обновление всех кэшированных значений. Запрос может быть инициирован изменениями в возможностях звукового устройства, таких как ограничения ресурсов.

Всякий раз, когда драйвер изменяет содержимое KSJACK_DESCRIPTION3 во время выполнения, драйвер активирует существующее событие KSEVENT_PINCAPS_JACKINFOCHANGE .

Аудиосистема Windows сохраняет последнее сообщенное значение ConfigId , кэшированное в конечной точке звука. Значение ConfigId извлекается в ответ на событие KSEVENT_PINCAPS_JACKINFOCHANGE и во время обычной обработки конечной точки звука при загрузке системы, перезапуске службы Audio Endpoint Builder, обновлении звукового драйвера или изменении состояния интерфейса конечной точки.

Если полученное значение ConfigId отличается от ранее сохраненного значения, аудиосистема Windows отменит все возможности кэшированных конечных точек и обновит их.

Рекомендуется определить несколько конфигураций конечных точек звука в драйвере, который управляется значением ConfigId (битовая маска или перечисление). Например, ConfigId 1 может указывать на наличие узла подсистемы аудио, тогда как ConfigId 2 не сообщает узел звукового модуля. ConfigId, используемый драйвером, используется совместно с аудиосистемой Windows через KSPROPERTY_JACK_DESCRIPTION3 и выполняет синхронизацию конечной точки с возможностями, кэшируемыми аудиосистемой Windows.

Значение ConfigId непрозрачно для Windows. Аудиодрайвер может использовать метку времени или добавочное значение, выбранное во время выполнения вместо битовой маски или перечисления, как было предложено выше. Эта стратегия не рекомендуется, так как она может привести к ненужным обновлениям конечных точек во время загрузки или изменениям интерфейса для синхронизации последнего сохраненного значения ConfigId с новым значением, даже если возможности конечной точки не изменяются. Такой подход также может увеличить вероятность того, что драйвер и Windows не синхронизированы, что может привести к сбоям воспроизведения звука.

Механизм, используемый для обновления кэшированных значений в конечной точке при изменении ConfigId, совпадает с тем, что используется для обновлений операционной системы и драйвера Обновления. Создается новая конечная точка с другим идентификатором, которая будет содержать обновленные кэшированные значения, соответствующие новым параметрам ConfigId для конечной точки. Затем пользовательские параметры копируются из старой конечной точки в новую конечную точку и, наконец, старая конечная точка удаляется. Дополнительные сведения о процессе миграции конечной точки аудио в обновлении ОС см. в разделе Обновление операционной системы.

Требования

Версия

Доступно в операционных системах Windows версии 22H2 и более поздних версий.

Заголовок

Ksmedia.h (включая Ksmedia.h)

См. также

KSJACK_DESCRIPTION

KSPROPERTY_JACK_DESCRIPTION3

IKsJackDescription2::GetJackDescription2

Динамическое изменение формата

Обновления операционной системы