ACX 版本資訊

本主題討論 ACX 和 KMDF 版本資訊。 如需 ACX 的一般概觀,請參閱 ACX 音訊類別延伸模組概觀

注意

ACX 標頭和連結庫不包含在 WDK 10.0.22621.2428 中(2023 年 10 月 24 日發行),但可在舊版中取得,以及 WDK 的最新 (25000 系列組建) Insider Preview。 如需 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 初始公開版本。

這些 DIS 已在 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 的詳細資訊,請參閱 Framework 物件簡介。 ACX 會在運行時間系結至特定版本的 KMDF。 如需詳細資訊,請參閱 KMDF 版本歷程記錄

如需安裝不同 WDF/KMDF 版本的相關信息,請參閱下列主題:

ACX 系結至運行時間的特定 KMDF 版本。 當 Windows 載入內核模式 WDF 驅動程式時,驅動程式會動態系結至 KMDF 執行時間連結庫 (WdfMM000.sys)。 多個驅動程式可以共用相同的運行時間連結庫 (DLL) 映像,而兩個主要版本的運行時間連結庫可以並存。 如需 KMDF 版本設定的相關信息,請參閱 架構連結庫版本控制

多個 ACX 版本支援

當您建置音訊驅動程式時,您可以指定編譯時要使用的 ACX 架構上限和最低版本。 因此,運行時間的音訊驅動程式可以假設 DDI 的 max/min 版本可用,否則音訊驅動程式無法載入。

如果特定 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 參考檔