Kernel-Mode аудиокомпонентов WDM

Аудиокомпоненты модели драйвера Microsoft Windows (WDM) в режиме ядра:

Системный драйвер WDMAud

Системный драйвер SysAudio

Системный драйвер KMixer

Системный драйвер Redbook

Системный драйвер SBEmul

Системный драйвер SWMidi

Системный драйвер DMusic

Системный драйвер AEC

Системный драйвер DRMK

Драйвер системы разделения

Драйвер адаптера класса портов и системный драйвер PortCls

Системный драйвер класса USB Audio (Usbaudio.sys)

Системный драйвер класса AVCAudio

Системный драйвер WDMAud

Системный драйвер WDMAud в режиме ядра (Wdmaud.sys) связан с системным драйвером WDMAud в пользовательском режиме (Wdmaud.drv). Пары драйверов WDMAud преобразуют вызовы системы мультимедиа Microsoft Windows в пользовательском режиме и запросы потокового ввода-вывода ядра. WDMAud выполняет операции ввода-вывода для следующих API: waveIn, waveOut, midiIn, midiOut, mixer и aux (описано в документации по Microsoft Windows SDK). Драйвер WDMAud в режиме ядра — это фильтр потоковой передачи ядра (KS) и клиент системного драйвера SysAudio.

Системный драйвер SysAudio

Системный драйвер SysAudio (Sysaudio.sys) создает графы фильтров, которые отрисовывают и захватывают звуковое содержимое. Драйвер SysAudio представляет графы фильтра звука как виртуальные звуковые устройства и регистрирует каждое виртуальное звуковое устройство как экземпляр интерфейса KSCATEGORY_AUDIO_DEVICE устройства. (Драйверы адаптера не должны регистрировать себя в этой категории, которая зарезервирована исключительно для SysAudio.) Например, виртуальное устройство MIDI может представлять собой граф фильтра, созданный путем подключения драйвера SWMidi, драйвера KMixer и драйвера порта или минипорта. Клиент взаимодействует только с виртуальным звуковым устройством, а не с отдельными устройствами, составляющими виртуальное звуковое устройство. Прозрачный для клиента драйвер SysAudio настраивает все фильтры KS в графе фильтров, которые подключены вместе для формирования виртуального звукового устройства. Следующие источники аудиопотока используют графы, создаваемые SysAudio:

  • DirectSound (см. документацию по Microsoft Windows SDK.)

  • API мультимедиа Windows waveIn, waveOut, midiIn, midiOut, mixer и aux (см. документацию по Windows SDK).

  • Цифровой аудиозапись Redbook CD (см. раздел Redbook System Driver).)

  • Эмулятор Sound Blaster (см. раздел SBEmul System Driver.)

  • Программные синтезаторы в режиме ядра (см. статьи Драйвер системы SWMidi и Системный драйвер DMusic).)

  • Системный драйвер DRMK

Системный драйвер KMixer

Системный драйвер KMixer (Kmixer.sys) — это фильтр KS, который выполняет следующие действия:

  • Комбинирование нескольких аудиопотоков PCM

  • Высококачественное преобразование формата

  • Преобразование битовой глубины

  • Конфигурация говорящего и сопоставление каналов

В дополнение к простым 8- и 16-разрядным, моно- и стереоформатам данных драйвер KMixer поддерживает:

  • Данные PCM и IEEE с плавающей запятой

  • Битовая глубина больше 16 бит и многоканальные форматы с более чем двумя каналами

  • Трехмерная обработка функции передачи, связанной с головой (HRTF)

Сведения о диапазонах громкости и уровнях громкости по умолчанию в различных версиях Windows см. в разделе Параметры громкости звука по умолчанию.

Системный драйвер Redbook

Системный драйвер Redbook (Redbook.sys) — это фильтр KS, который управляет отрисовкой цифрового аудио cd. Драйвер Redbook является клиентом системного драйвера SysAudio. Система направляет цифровой звук cd через файловую систему к драйверу Redbook, а затем к драйверу SysAudio. Цифровой звук компакт-диска отображается на предпочтительном устройстве вывода волн (как указано на страницах свойств Мультимедиа в панель управления).

Системный драйвер SBEmul

Системный драйвер SBEmul (Sbemul.sys) обеспечивает эмуляцию Sound Blaster для приложений MS-DOS. Драйвер SBEmul является клиентом системного драйвера SysAudio. Для отрисовки и записи содержимого драйвер SysAudio использует предпочитаемые устройства волны и MIDI (как указано на страницах свойств Мультимедиа в панель управления).

Эмуляция Sound Blaster поддерживается только в Windows 98/Me.

Системный драйвер SWMidi

Системный драйвер SWMidi (Swmidi.sys) — это фильтр KS, который обеспечивает программный эмулируемый общий MIDI (GM) и высококачественный волновой синтез Roland GS. Приложение midiOutXxx использует SWMidi, если аппаратный синтезатор недоступен. Фильтр SWMidi получает в качестве входных данных поток MIDI с меткой времени из системного драйвера WDMAud и выводит поток волн PCM в системный драйвер KMixer. SWMidi смешивает все свои голоса внутри, чтобы сформировать один двухканевой выходной поток с волновым форматом PCM.

Системный драйвер DMusic

Системный драйвер DMusic (Dmusic.sys) — это фильтр KS, который поддерживает эмулируемый программным обеспечением высококачественный скачиваемый синтез звука (DLS). Драйвер DMusic — это поставляемый системой драйвер порта класса miniport. Он предоставляет один контакт DirectMusic, который поддерживает диапазон данных потока DirectMusic. Фильтр DMusic получает в качестве входных данных поток MIDI с меткой времени из системного компонента DirectMusic и выводит поток волн PCM в системный драйвер KMixer. Драйвер DMusic внутренне смешивает все свои голоса, чтобы сформировать один двухканевой выходной поток с форматом волны PCM. Приложение DirectMusic должно явно выбрать программный синтезатор в режиме ядра, Dmusic.sys, чтобы использовать его вместо стандартного синтезатора в пользовательском режиме DirectMusic.

Системный драйвер AEC

Системный драйвер AEC (Aec.sys) поддерживает полнодуплексные приложения DirectSound путем реализации алгоритмов AEC (подавление акустического эха) и подавления шума в программном обеспечении. Дополнительные сведения см. в разделе Эффекты захвата DirectSound.

Системный драйвер DRMK

Системный драйвер DRMK (Drmk.sys) — это фильтр KS, который расшифровывает аудиопотоки, содержащие содержимое, защищенное DRM. Дополнительные сведения см. в статье Digital Rights Management.

Драйвер системы разделения

Системный драйвер сплиттера (Splitter.sys) — это фильтр KS, который создает два или более выходных потоков из одного потока записи входных данных. Драйвер splitter прозрачно копирует входной поток в два других выходных потока независимо от формата входного потока.

Драйвер splitter поддерживается в Microsoft Windows XP и более поздних версиях. Дополнительные сведения см. в разделе Разделители AVStream.

Драйвер адаптера класса портов и системный драйвер PortCls

Драйвер адаптера класса порта использует архитектуру драйвера порта или минипорта для поддержки звукового устройства. Драйвер PortCls включает встроенную поддержку драйверов для звуковых устройств ISA и PCI. Хотя системный драйвер PortCls (Portcls.sys) также предоставляет платформу для драйверов адаптеров класса портов, предоставляемых поставщиком, корпорация Майкрософт рекомендует поставщикам использовать системный драйвер адаптера класса портов для поддержки звуковых устройств ISA и PCI. Платформа PortCls также может быть полезна для создания драйверов для звуковых устройств на других аппаратных автобусах или для программных устройств. Дополнительные сведения см. в статье Общие сведения о классе портов.

Системный драйвер класса USB Audio (Usbaudio.sys)

Системный драйвер класса USBAudio (Usbaudio.sys) обеспечивает поддержку драйверов для аудиоустройств USB, которые соответствуют определению класса устройств универсальной последовательной шины для звуковых устройств. Дополнительные сведения о системных драйверах этого класса см. в разделе Системный драйвер класса USB Audio (Usbaudio.sys).

Системный драйвер класса AVCAudio

Системный драйвер класса AVCAudio (Avcaudio.sys) — это мини-драйвер AVStream, обеспечивающий поддержку драйверов для звуковых устройств, размещенных в шине IEEE 1394. Драйвер AVCAudio и связанная поддержка звуковых устройств IEEE 1394 доступны в Windows XP и более поздних версиях.

Для работы с системными драйверами поставщики оборудования должны разработать свои звуковые устройства в соответствии с соответствующими разделами следующих спецификаций:

  • IEC 61883-1 и IEC 61883-6 (IEC 60958)

  • Набор команд цифрового интерфейса AV/C Общая спецификация Ver. 3,0

  • Av/C Audio Subunit Specification 1.0

  • Спецификация управления подключением и совместимостью 1.0

  • Информация и согласование формата медиапотока AV/C

  • Обновления к спецификациям аудиосоединителей AV/C, которые в настоящее время находятся в процессе

Эти спецификации описаны на веб-сайте вики-страницы IEEE 1394 . Драйвер AVCAudio поддерживает подмножество функций, описанных в этих спецификациях.

Когда звуковое устройство идентифицирует себя как звуковое устройство, совместимое с IEEE 1394, во время перечисления устройств Plug and Play, система автоматически загружает драйвер AVCAudio для управления устройством. AVCAudio управляет устройством напрямую без использования собственного драйвера адаптера. Это означает, что для устройства, соответствующего соответствующим спецификациям IEEE 1394, не требуется собственный драйвер адаптера.

Корпорация Майкрософт рекомендует поставщикам оборудования использовать драйвер AVCAudio для аудиоустройств IEEE 1394 вместо собственных драйверов адаптера.

На следующем рисунке показана иерархия драйверов для звукового устройства IEEE 1394 в Windows XP. В Windows XP и более поздних версиях все компоненты драйверов, показанные на этом рисунке, предоставляются корпорацией Майкрософт вместе с операционной системой.

Схема, показывающая иерархию драйверов для звукового устройства IEEE 1394 в Windows XP.

Дополнительные сведения о компонентах драйвера на рисунке см. в следующих разделах:

Обзор AVStream

Драйверы клиента AV/C

Шина IEEE 1394