Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе содержатся общие сведения о расширениях класса АУДИО ACX.
Платформа ACX основана на платформе Windows Driver Framework
Чтобы обеспечить более надежные звуковые драйверы и обеспечить оптимальный интерфейс для пользователей ПК, теперь доступна функция аудиокласса eXtension (ACX). ACX определяет расширение класса Windows Driver Framework (WDF) для звукового домена. Дополнительные сведения о WDF см. в разделе "Общие сведения о объектах Платформы". Многие понятия WDF, такие как целевые объекты ввода-вывода WDF, доступны в ACX. Дополнительные сведения о целевых объектах ввода-вывода WDF см. в разделе "Общие сведения о целевых объектах ввода-вывода".
ACX создается с помощью платформы драйверов режима ядра (KMDF), а не платформы драйверов режима пользователя (UMDF), чтобы избежать задержки, связанной с многократным переключением задач из режима пользователя в режим ядра во время потоковой передачи. Портклс аудио-драйверы, в настоящее время являющиеся устаревшей моделью, относятся к драйверам WDM, работающим в режиме ядра.
Использование платформы ACX упрощает создание рабочих звуковых драйверов из коробки. Например, ACX поддерживает завершение по умолчанию для большинства его параметров. Это упрощает водителю использование правильных настроек и при этом позволяет настраивать параметры.
Платформа ACX предоставляет звуковые понятия в виде объектов WDF, с которыми драйвер может взаимодействовать (поток, формат и т. д.). Это позволяет обеспечить согласованный интерфейс программирования и обеспечивает более широкое сообщество разработчиков звуковых драйверов.
Цели ACX
Расширения класса аудио (ACX) имеют следующие цели.
- Упростите усилия и сократите знания, необходимые для разработки простых самостоятельных звуковых драйверов.
- Уменьшите объем кода, который требуется разработать стороннему участнику. Меньше строк кода уменьшает обслуживание и упрощает отладку.
- Позволяет существующим клиентам верхнего пользовательского режима (службам и приложениям) выполняться как есть.
- Упростить управление Power PnP драйверами аудио стека.
- Не влияет на общую производительность, т. е. нет дополнительной или заметной задержки.
- Упростите усилие, требуемое для разработки мультистековых аудиодрайверов.
- Разрешить сторонним драйверу указать механизм блокировки, используемый при потоковой передаче.
- Использует решение изоляции развертывания компонентов Майкрософт, которое делает модули драйверов или API автономными и повторно используемыми.
Архитектура ACX
На этой схеме показана архитектура ACX с существующими приложениями пользовательского режима и объектами ACX в режиме ядра и звуковом оборудовании в нижней части стека. В дополнение к объектам ACX разработчик драйвера имеет доступ к объектам WDF, чтобы воспользоваться преимуществами в коде драйвера, например для управления питанием.
Сосуществование ACX с существующими звуковыми драйверами
ACX предназначен для совместной работы с существующими звуковыми драйверами, чтобы обеспечить гибкую миграцию на новые драйверы ACX.
- Двоичная совместимость выхода, без изменений (на основе WDM) драйверов мини-порта звука поддерживается существующими устаревшими драйверами классов Windows.
- В настоящее время ACX поддерживает только потоковую передачу на основе WaveRT.
- Устаревшие стеки PortCls/Ks и новые стеки ACX работают одновременно. Использование ACX не заставляет стороннего участника переносить текущие звуковые драйверы в новую модель. Поскольку модель предлагает множество преимуществ, третьи стороны могут добровольно решить использовать её для их будущей разработки аудиоконтента.
Общие определения ACX
Канал — компонент драйвера, представляющий частичный или полный звуковой путь. Схема представляет существующую конечную точку и ее возможности.
Stream — компонент драйвера, созданный для представления звукового потока, созданного схемой. Поток состоит из списка элементов, созданных на основе элементов родительской цепи.
Канал Stream — канал в архитектуре с несколькими стеками (частичный звуковой путь), который напрямую взаимодействует со службой потоковой передачи в верхнем пользовательском режиме.
Основной контур — контур в архитектуре с несколькими стеками (частичный звуковой путь), который определяет идентичность аудио конечного устройства.
Элемент — подкомпонент цепи или потока, представляющий аудиовозможности основного оборудования. Это может быть элемент "Volume", или "Mute", или "Jack", или элемент "Module" в канале DSP и т. д.
Конечная точка аудиопути — один или группа объектов цепи, подключенных вместе, чтобы представлять одну аудиоконечную точку. Объекты канала должны поступать из разных стеков устройств, принадлежащих одному или разным драйверам.
Сводка объектов ACX
Сводка по базовым объектам ACX см. в разделе Сводка объектов ACX.
Пример драйвера ACX
Простой пример драйвера ACX доступен для просмотра и скачивания на GitHub в ветви разработки . https://github.com/microsoft/Windows-driver-samples/tree/main/audio/Acx/Samples
Средство проверки драйверов
Использование средства проверки драйверов рекомендуется для всех драйверов Windows, включая драйверы ACX. Используйте средство проверки драйверов для отображения скрытых ошибок, уменьшения потребления электроэнергии и повышения надежности драйвера. Дополнительные сведения см. в разделе "Проверка драйверов".
Стандартизованное взаимодействие драйвера ACX с несколькими стеками
Обычно звуковой путь проходит через несколько аппаратных компонентов, обрабатываемых различными стеками драйверов, чтобы создать полный звуковой интерфейс. Обычно система имеет функции DSP, CODEC и AMP, реализованные различными поставщиками звуковых технологий.
В архитектуре с несколькими стеками без четко определенного стандарта каждый поставщик вынужден определять собственный собственный интерфейс и протокол связи. Цель ACX заключается в упрощении разработки многостековых аудиодрайверов, управляя синхронизацией между этими стеками и предоставляя простой повторно используемый шаблон для взаимодействия драйверов друг с другом.
Дополнительные сведения см. в статье ACX multi stack cross driver communications.
Справочная документация по ACX
Сведения о справочной документации ACX на уровне заголовка см. в разделе справочной документации ACX.
См. также
Справочная документация по ACX
Целевые объекты ACX и синхронизация драйверов
Пакеты запросов IRP ввода-вывода ACX