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

В этом разделе рассматриваются сведения о версии ACX и KMDF. Общие сведения о расширениях класса ACX см. в разделе "Общие сведения о расширениях аудиофайла ACX".

Примечание.

Заголовки и библиотеки ACX не включены в WDK 10.0.22621.2428 (выпущено 24 октября 2023 г.), но доступны в предыдущих версиях, а также последние (сборки серии 25000) предварительной версии WDK. Дополнительные сведения о предварительных версиях WDK см. в разделе "Установка предварительных версий пакета драйверов Windows (WDK)".

Версии ACX и KMDF

Используйте расширение !wdfkd.wdfldr для просмотра сведений о версии ACX. Расширение !wdfkd.wdfldr отображает сведения о драйверах, которые в настоящее время динамически привязаны к Платформам драйверов Windows.

!wdfkd.wdfldr Acx01000.sys

Версия 1.1

Текущая версия ACX — 1.1 и рекомендуется для разработки всех новых драйверов.

Поддержка ОС Windows для версий ACX описана в следующей таблице.

Операционная система Версия KMDF Поддерживаемая версия ACX Заметки о версии
Windows 10 версии 2004 Минимум 1.31 1,1 Первоначальный общедоступный выпуск.

Эти DDIs были добавлены в версию 1.1.

  • AcxCircuitGetElementsCount
  • AcxCircuitGetPinsCount
  • AcxCircuitGetSymbolicLinkName
  • AcxCircuitGetNotificationId
  • AcxFactoryCircuitGetSymbolicLinkName
  • AcxDataFormatListRemoveDataFormats
  • AcxPinRemoveModeDataFormatList
  • AcxStreamGetElementsCount
  • AcxStreamGetNotificationId
  • AcxTargetCircuitGetSymbolicLinkName
  • AcxTargetPinFlushModeDataFormatListCache

Предварительная версия 1.0

Версия 1.0 не рекомендуется для разработки новых драйверов, но она использовалась в начале разработки и тестирования драйверов ACX.

Операционная система Версия KMDF Поддерживаемая версия ACX Заметки о версии
Windows 10 версии 1903 1,29 1.0 Предварительная версия.

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

Объекты ACX — это объекты Windows Driver Framework (WDF) — WDFOBJECT. Дополнительные сведения о WDF см. в разделе "Общие сведения о объектах Платформы". ACX привязывается к определенной версии KMDF во время выполнения. Дополнительные сведения см. в разделе "Журнал версий KMDF".

Сведения об установке различных версий WDF/KMDF см. в следующих разделах:

ACX привязывается к определенной версии KMDF во время выполнения. При загрузке драйвера WDF в режиме ядра драйвер драйвер динамически привязан к библиотеке времени выполнения KMDF (WdfMM000.sys). Несколько драйверов могут совместно использовать один и тот же образ библиотеки времени выполнения (DLL), а библиотеки времени выполнения для двух основных версий могут совместно существовать параллельно. Сведения об использовании версий KMDF см. в разделе "Управление версиями библиотеки платформы".

Поддержка нескольких версий ACX

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

Драйверы ACX можно записать на выполнение в нескольких версиях ACX и во время выполнения, если определенный DDI ACX, структура и т. д. присутствует или нет в этой версии. ACX_IS_FUNCTION_AVAILABLE(FunctionName) можно использовать, чтобы узнать, доступна ли определенная функция в определенной версии ACX. Дополнительные сведения см. в разделе ACX_IS_FUNCTION_AVAILABLE макросов.

В следующем коде приведен пример проверка, если функция доступна.

    if (ACX_IS_FUNCTION_AVAILABLE( AcxTargetPinFlushModeDataFormatListCache)) {
        DbgPrint("Available:  AcxTargetPinFlushModeDataFormatListCache\n");
    }
    else
    {
        DbgPrint("Not available:  AcxTargetPinFlushModeDataFormatListCache\n");
        ASSERT(FALSE);
    }

Кроме того, доступны эти аналогичные функции.

ACX_IS_STRUCTURE_AVAILABLE(StructName), описанное в макросе ACX_IS_STRUCTURE_AVAILABLE.

ACX_IS_FIELD_AVAILABLE(StructName, FieldName), описанный в макросе ACX_IS_FIELD_AVAILABLE.

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

    ACX_DRIVER_VERSION_AVAILABLE_PARAMS_INIT(&ver, 1, 1);
    if (!AcxDriverIsVersionAvailable(driver, &ver))
    {
        ASSERT(FALSE);
        goto exit;
    } 

См. также

макрос ACX_IS_FUNCTION_AVAILABLE

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

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