Поделиться через


Общие сведения о расширениях аудиоклассов ACX

В этом разделе содержатся общие сведения о расширениях класса АУДИО 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) имеют следующие цели.

  • Упростите усилия и узнайте, как требуется для разработки простых автономных звуковых драйверов.
  • Уменьшите объем кода, который требуется разработать стороннему участнику. Меньше строк кода уменьшает обслуживание и упрощает отладку.
  • Позволяет существующим клиентам верхнего пользовательского режима (службам и приложениям) выполняться как есть.
  • Упрощение управления питанием pnp драйверов аудио стека.
  • Не влияет на общую производительность, т. е. нет дополнительной или заметной задержки.
  • Упростите усилия, необходимые для разработки драйверов аудиофайла с несколькими стеками.
  • Разрешить сторонним драйверу указать механизм блокировки, используемый при потоковой передаче.
  • Использует решение изоляции развертывания компонентов Майкрософт, которое делает модули драйверов или API автономными и повторно используемыми.

Архитектура ACX

На этой схеме показана архитектура ACX с существующими приложениями пользовательского режима и объектами ACX в режиме ядра и звуковом оборудовании в нижней части стека. В дополнение к объектам ACX разработчик драйвера имеет доступ к объектам WDF, чтобы воспользоваться преимуществами в коде драйвера, например для управления питанием.

Схема, демонстрирующая архитектуру ACX, показывающую режим пользователя и ядра с объектами WDF и ACX в режиме ядра, а также звуковое оборудование в нижней части стека.

Сосуществование ACX с существующими звуковыми драйверами

ACX предназначен для совместной работы с существующими звуковыми драйверами, чтобы обеспечить гибкую миграцию на новые драйверы ACX.

  • Двоичная совместимость выхода, без изменений (на основе WDM) драйверов мини-порта звука поддерживается существующими устаревшими драйверами классов Windows.
  • В настоящее время поддерживается только потоковая передача на основе WaveRT.
  • Устаревшие порткли/Ks и новые стеки ACX выполняются параллельно. Использование ACX не заставляет стороннего участника переносить текущие звуковые драйверы в новую модель. Поскольку модель предлагает множество преимуществ, 3-е стороны могут добровольно отказаться от его использования для их будущего развития звука.

Общие определения ACX

Канал — компонент драйвера, представляющий частичный или полный звуковой путь. Канал представляет существующую конечную точку и ее возможности.

Stream — компонент драйвера, созданный для представления звукового потока, созданного каналом. Поток состоит из списка элементов, созданных на основе элементов родительского канала.

Канал Stream — канал в архитектуре с несколькими стеками (частичный звуковой путь), который напрямую взаимодействует со службой потоковой передачи в верхнем пользовательском режиме.

Основной канал — канал в архитектуре с несколькими стеками (частичный звуковой путь), который предоставляет удостоверение устройства аудио конечной точки.

Элемент — подкомпонент канала или потока, представляющий возможность звука оборудования подчеркивания. Это может быть элемент Volume, или Mute, или Jack, или элемент Module в канале DSP и т. д.

Конечная точка аудиопуть — одна или группа объектов канала, подключенных вместе, чтобы представлять одну конечную точку звука. Объекты канала должны поступать из разных стеков устройств, принадлежащих одному или разным драйверам.

Сводка объектов ACX

Сводка по базовым объектам ACX см. в разделе Сводка объектов ACX.

Пример драйвера ACX

Простой пример драйвера ACX доступен для просмотра и скачивания на GitHub в ветви разработки . https://github.com/microsoft/Windows-driver-samples/tree/develop/audio/Acx/Samples

Средство проверки драйверов

Использование средства проверки драйверов рекомендуется для всех драйверов Windows, включая драйверы ACX. Используйте средство проверки драйверов для отображения скрытых ошибок, уменьшения потребления электроэнергии и повышения надежности драйвера. Дополнительные сведения см. в разделе "Проверка драйверов".

Стандартизованные кросс-связи драйвера ACX с несколькими стеками

Обычно звуковой путь проходит через несколько аппаратных компонентов, обрабатываемых различными стеками драйверов, чтобы создать полный звуковой интерфейс. Обычно система имеет функции DSP, CODEC и AMP, реализованные различными поставщиками звуковых технологий.

В архитектуре с несколькими стеками без четко определенного стандарта каждый поставщик вынужден определять собственный собственный интерфейс и протокол связи. Это цель ACX для упрощения разработки драйверов аудиофайла с несколькими стеками путем владения синхронизацией между этими стеками и предоставления простого повторно удобного шаблона для общения драйверов друг с другом.

Дополнительные сведения см. в статье acX multi stack cross driver communications.

Справочная документация по ACX

Сведения о справочной документации по ACX уровня заголовка см . в справочной документации по ACX.

См. также

Сводка объектов ACX

Справочная документация по ACX

Сведения о версии ACX

Ведение журнала и отладка ACX

Целевые объекты ACX и синхронизация драйверов

Поставщики запросов операций ввода-вывода ACX

Перечисление устройств ACX

Управление питанием ACX

Обмен данными между драйверами с несколькими стеками ACX

Потоковая передача ACX