ACX 版本信息

本主题讨论 ACX 和 KMDF 版本信息。 有关 ACX 的一般概述,请参阅 ACX 音频类扩展概述

注意

ACX 标头和库不包括在 WDK 10.0.22621.2428(2023 年 10 月 24 日发布)中,但在早期版本中可用,以及 WDK 的最新(25000 系列内部版本)预览体验预览版。 有关 WDK 预览版的详细信息,请参阅 安装 Windows 驱动程序工具包(WDK)的预览版本。

ACX 和 KMDF 版本

使用 !wdfkd.wdfldr 扩展查看 ACX 的版本信息。 !wdfkd.wdfldr 扩展显示有关当前动态绑定到 Windows 驱动程序框架的驱动程序的信息。

!wdfkd.wdfldr Acx01000.sys

版本 1.1

ACX 的当前版本为 1.1 ,建议用于所有新的驱动程序开发。

下表介绍了对 ACX 版本的 Windows OS 支持。

操作系统 KMDF 版本 支持的 ACX 版本 版本说明
Windows 10 版本 2004 最低 1.31 1.1 初始公开发布。

这些 DDI 已在版本 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 驱动程序框架 (WDF) 对象 - WDFOBJECT。 有关 WDF 的详细信息,请参阅 框架对象简介。 ACX 在运行时绑定到特定版本的 KMDF。 有关详细信息,请参阅 KMDF 版本历史记录

有关安装不同版本的 WDF/KMDF 的信息,请参阅以下主题:

ACX 在运行时绑定到特定版本的 KMDF。 当 Windows 加载内核模式 WDF 驱动程序时,驱动程序将动态绑定到 KMDF 运行时库(WdfMM000.sys)。 多个驱动程序可以共享相同的运行时库(DLL)映像,两个主要版本的运行时库可以并存。 有关 KMDF 版本控制的信息,请参阅 框架库版本控制

多个 ACX 版本支持

生成音频驱动程序时,可以指定编译时要使用的 ACX 框架的最大和最低版本。 因此,运行时的音频驱动程序可以假定 DDI 的最大/最小版本可用,否则音频驱动程序无法加载。

如果特定 ACX DDI、结构等存在于该版本中,则 ACX 驱动程序可以写入到多个 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 宏中所述的 ACX_IS_STRUCTURE_AVAILABLE(StructName)。

ACX_IS_FIELD_AVAILABLE宏中所述的 ACX_IS_FIELD_AVAILABLE(StructName、FieldName)。

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 参考文档