Поддержка управления громкости программного обеспечения
В Windows Vista и более поздних версиях поддержка программного тома предоставляется для звукового оборудования, которое не включает усилитель с соответствующим физическим управлением громкости.
На следующей схеме показано упрощенное представление поддержки программного тома Windows.
На схеме показаны два отдельных пути аудиоданных. При наличии усилителя и при использовании управления громкости программного обеспечения Windows APO. Если усилитель присутствует, драйвер объявляет, KSPROPERTY_AUDIO_VOLUMELEVEL. Если звуковой драйвер не указывает, что он поддерживает KSPROPERTY_AUDIO_VOLUMELEVEL, звуковой модуль Windows создает APO управления громкость программного обеспечения.
На типичном компьютере будет присутствовать только один из этих путей к данным, так как на компьютере обычно имеется один набор звуковых компонентов. Здесь показаны два пути для наглядности.
Интерфейс IAudioEndpointVolume представляет элементы управления громкостью в аудиопотоке или с устройства конечной точки звука.
При наличии звука Bluetooth или USB их регуляторы громкости будут управляться отдельно.
Путь к данным с усилителем
Когда клиентское приложение вызывает интерфейс IAudioEndpointVolume в конфигурации с усилителем и физическим регулятором громкости, звуковой драйвер предоставляет KSNODETYPE_VOLUME узел в фильтре топологии. Наличие узла тома делает IAudioEndpointVolume осведомленным о том, что уровень громкости звукового сигнала будет изменен оборудованием.
Путь к данным без усилителя
Если усилитель отсутствует, IAudioEndpointVolume работает со звуковым модулем для инициализации программного тома Windows, поддерживающий APO.
Так как нет элемента управления физическим объемом для моделирования, KSNODETYPE_VOLUME узел не предоставляется в фильтре топологии. Затухание и получение тома выполняются компонентом поддержки программного тома APO.
Сведения о диапазонах громкости и уровнях громкости по умолчанию для различных версий Windows см. в разделе Параметры громкости звука по умолчанию.