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


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

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

Версии ACX и KMDF

Use the !wdfkd.wdfldr extension to view version information for ACX. Расширение !wdfkd.wdfldr отображает сведения о драйверах, которые в настоящее время динамически привязаны к Платформам драйверов Windows.

!wdfkd.wdfldr Acx01000.sys

Version 1.1

The current version of ACX is 1.1 and is recommended for all new driver development.

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

Operating system KMDF version Поддерживаемая версия ACX Version notes
Windows 10 версии 2004 Minimum 1.31 1.1 Первоначальный общедоступный выпуск.

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

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

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

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

Operating system KMDF version Поддерживаемая версия ACX Version notes
Windows 10 версии 1903 1.29 1.0 Pre-release.

Сведения о версии 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) can be used to see if a specific function in available in a specific version of ACX. For more information, see ACX_IS_FUNCTION_AVAILABLE macro.

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

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

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

ACX_IS_STRUCTURE_AVAILABLE(StructName) described in ACX_IS_STRUCTURE_AVAILABLE macro.

ACX_IS_FIELD_AVAILABLE(StructName, FieldName) described in ACX_IS_FIELD_AVAILABLE macro.

ACX also supports the ACX_DRIVER_VERSION_AVAILABLE_PARAMS_INIT function which can be used to check version information of the audio driver as shown in the following code sample.

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

See also

ACX_IS_FUNCTION_AVAILABLE macro

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

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