ACX バージョン情報

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

ACX および KMDF バージョン

ACX のバージョン情報を表示するには、 !wdfkd.wdfldr 拡張機能を使用します。 !wdfkd.wdfldr 拡張機能には、Windows ドライバーフレームワークに現在動的にバインドされているドライバーに関する情報が表示されます。

!wdfkd.wdfldr Acx01000.sys

バージョン 1.1

ACX の現在のバージョンは 1.1 で、すべての新しいドライバー開発に推奨されます。

ACX バージョンに対する Windows OS のサポートについては、次の表で説明します。

オペレーティング システム KMDF バージョン サポートされている ACX バージョン バージョンに関するメモ
Windows 10, version 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(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 リファレンス ドキュメント