ACXバージョン情報

このトピックでは、ACX と KMDF のバージョン情報について説明します。 ACX の一般的な概要については、ACX オーディオ クラス拡張機能の概要を参照してください

Note

ACX ヘッダーとライブラリは、WDK 10.0.22621.2428 (2023 年 10 月 24 日リリース) には含まれていませんが、以前のバージョンと WDK の最新 (25000 シリーズ ビルド) Insider Preview で使用できます。 WDK のプレビュー バージョンの詳細については、「Windows Driver Kit (WDK) のプレビュー バージョンのインストール」を参照してください

ACX と KMDF のバージョン

ACX のバージョン情報を 表示するには、!wdfkd.wdfldr 拡張機能を使用します。 !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 Version 1903 1.29 1.0 プレリリース。

KMDF のバージョン情報

ACX オブジェクトは、Windows Driver Framework (WDF) オブジェクト (WDFOBJECT) です。 WDF の詳細については、「フレームワーク オブジェクトの概要」を参照してください。 ACX は、実行時に特定のバージョンの KMDF にバインドされます。 詳細については、「KMDF バージョン履歴」を参照してください

WDF/KMDF のさまざまなバージョンのインストールについては、次のトピックを参照してください。

ACX 実行時に特定のバージョンの KMDF にバインドされます。 Windows がカーネル モードの WDF ドライバーを読み込むとき、ドライバーは KMDF ランタイム ライブラリ (WdfMM000.sys) に動的にバインドされます。 複数のドライバーが同じランタイム ライブラリ (DLL) イメージを共有でき、2 つのメジャー バージョンのランタイム ライブラリを共存させることができます。 KMDF のバージョン管理の詳細については、「フレームワーク ライブラリのバージョン管理」を参照してください

複数の ACX バージョンのサポート

オーディオ ドライバーをビルドするときに、コンパイル時に使用する ACX フレームワークの最大バージョンと最小バージョンを指定します。 したがって、実行時のオーディオ ドライバーは、DDI の最大/最小バージョンが使用可能であると想定できます。それ以外の場合、オーディオ ドライバーの読み込みに失敗します。

ACX ドライバーは、複数のバージョンの ACX で実行するように記述でき、実行時に特定の ACX DDI、構造体などが存在する場合、またはそのバージョンに存在しない場合に呼び出しを行います。 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_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 リファレンス ドキュメント