KSPROPERTY_JACK_DESCRIPTION3
Свойство KSPROPERTY_JACK_DESCRIPTION3 реализуется как свойство с закреплением, доступ к которому осуществляется с помощью дескриптора фильтра.
В операционных системах Windows версии 22H2 и более поздних связанных KSJACK_DESCRIPTION3 можно использовать для указания и изменения текущей конфигурации разъема.
Сводная таблица использования
Получить | Присвойте параметру | Назначение | Тип дескриптора свойства | Тип значения свойства |
---|---|---|---|---|
Да |
Нет |
Фабрика контактов (через дескриптор фильтра) |
Значение свойства (данные экземпляра) — это KSMULTIPLE_ITEM, за которым следует массив KSJACK_DESCRIPTION3 структур.
Возвращаемое значение
Запрос свойства KSPROPERTY_JACK_DESCRIPTION3 возвращает KSMULTIPLE_ITEM, за которым следует массив N KSJACK_DESCRIPTION3 структур, где N — количество разъемов, связанных с указанным контактом моста. В следующем списке показаны элементы, возвращаемые запросом свойства.
KSMULTIPLE_ITEM. Size = sizeof(KSMULTIPLE_ITEM) + N * sizeof(KSJACK_DESCRIPTION3)
KSMULTIPLE_ITEM. Count = N
KSJACK_DESCRIPTION3[0]
...
KSJACK_DESCRIPTION3[N-1]
Комментарии
Обмен данными об изменениях звукового устройства с помощью KSJACK_DESCRIPTION3 и KSPROPERTY_JACK_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 |