Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
В этом разделе содержатся общие сведения о расширениях класса АУДИО ACX.
Платформа ACX основана на платформе Windows Driver Framework
Чтобы повысить надежность звуковых драйверов и предложить пользователям ПК наилучший возможный опыт, класс Audio Class Extension (ACX) теперь доступен в Windows. ACX определяет расширение класса Windows Driver Framework (WDF) для звукового домена. Дополнительные сведения о WDF см. в разделе "Общие сведения о объектах Платформы". Многие понятия WDF, такие как целевые объекты ввода-вывода WDF, доступны в ACX. Дополнительные сведения о целевых объектах ввода-вывода WDF см. в разделе "Общие сведения о целевых объектах ввода-вывода".
ACX создается с помощью платформы драйверов режима ядра (KMDF), а не платформы драйверов режима пользователя (UMDF), чтобы избежать задержки, связанной с многократным переключением задач из режима пользователя в режим ядра во время потоковой передачи. Портклс аудио-драйверы, в настоящее время являющиеся устаревшей моделью, относятся к драйверам WDM, работающим в режиме ядра.
Использование платформы ACX упрощает создание рабочих звуковых драйверов из коробки. Например, ACX поддерживает автозаполнение по умолчанию для большинства настроек, что упрощает водителю использование нужных настроек, при этом остаётся возможность настройки параметров под свои нужды.
Платформа ACX предоставляет звуковые понятия в виде объектов WDF, с которыми драйвер может взаимодействовать (поток, формат и т. д.). Это позволяет обеспечить согласованный интерфейс программирования и обеспечивает более широкое сообщество разработчиков звуковых драйверов.
ACX goals
Класс расширений звука (ACX) имеет следующие цели:
- Упростите усилия и сократите знания, необходимые для разработки простых самостоятельных звуковых драйверов.
- Уменьшите объем кода, который требуется разработать стороннему участнику. Меньше строк кода уменьшает обслуживание и упрощает отладку.
- Разрешить существующим клиентам верхнего пользовательского режима (службам и приложениям) выполняться как есть.
- Упростить управление Power PnP драйверами аудио стека.
- Никаких негативных последствий для общей производительности; например, дополнительная или заметная задержка при обработке или доставке звука.
- Упростите усилие, требуемое для разработки мультистековых аудиодрайверов.
- Разрешить сторонним драйверу указать механизм блокировки, используемый при потоковой передаче.
- Используйте решение изоляции развертывания компонентов Майкрософт, которое делает модули драйверов и API как автономными, так и повторно используемыми.
ACX architecture
На этой схеме показана архитектура 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
Driver Verifier
Использование средства проверки драйверов рекомендуется для всех драйверов Windows, включая драйверы ACX. Используйте средство проверки драйверов для отображения скрытых ошибок, уменьшения потребления электроэнергии и повышения надежности драйвера. Дополнительные сведения см. в разделе "Проверка драйверов".
Стандартизованное взаимодействие драйвера ACX с несколькими стеками
Обычно звуковой путь проходит через несколько аппаратных компонентов, обрабатываемых различными стеками драйверов, чтобы создать полный звуковой интерфейс. Обычно система имеет функции DSP, CODEC и AMP, реализованные различными поставщиками звуковых технологий.
В архитектуре с несколькими стеками без четко определенного стандарта каждый поставщик вынужден определять собственный собственный интерфейс и протокол связи. Целью ACX является упрощение разработки мультистековых звуковых драйверов путем управления синхронизацией между этими стеками и предоставления простого и удобного шаблона для драйверов для легкого взаимодействия между собой.
Дополнительные сведения см. в статье ACX multi stack cross driver communications.
Справочная документация по ACX
Сведения о справочной документации ACX на уровне заголовка см. в разделе справочной документации ACX.
See also
Справочная документация по ACX
Целевые объекты ACX и синхронизация драйверов
Пакеты запросов IRP ввода-вывода ACX