次の方法で共有


USB のデバイス固有のメソッド (_DSM)

WINDOWS では、USB サブシステムのデバイス クラス固有の構成をサポートするために、この記事で説明する機能を備えるデバイス固有のメソッド (_DSM) を定義します。

機能 1: デュアル ロール コントローラーのリセット後の処理

デュアルロールUSBコントローラのリセット後処理機能の_DSM制御方法パラメータは次のとおりです。

引数 (関数 1)

  • Arg0: UUID = ce2ee385-00e6-48cb-9f05-2edb927c4899
  • Arg1: リビジョン ID: 0
  • Arg2: 関数インデックス = 1
  • Arg3: 空のパッケージ (未使用)

戻り値 (関数 1)

なし

Windows 受信トレイ ドライバーは、ホスト モードの USB コントローラーのみをサポートします。 各コントローラーのリセット後、USB ドライバーは、_DSM関数インデックス 1 を呼び出して、ホスト モードで動作するように USB コントローラーを構成するために必要なコントローラー固有の初期化を実行します。

この関数を使用する場合、_DSM メソッドが USB コントローラー デバイスの下に表示される必要があります。

機能 2: ポートの種類の識別

USB ポートの種類を識別するための_DSM制御方法のパラメーターは次のとおりです。

引数 (関数 2)

  • Arg0: UUID = ce2ee385-00e6-48cb-9f05-2edb927c4899
  • Arg1: リビジョン ID: 0
  • Arg2: 関数インデックス = 2
  • Arg3: 空のパッケージ (未使用)

戻り値 (関数 2)

次のいずれかの値を含む整数:

要素 オブジェクトの種類 説明
[ポートの種類] 整数 (バイト) USB ポートのタイプを指定します。

0x00 – 通常の USB

0x01 – HSIC

0x02 – SSIC

0x03 – 予約済みの0xff

この関数を使用する場合、_DSM メソッドが USB ポート デバイスの下に表示される必要があります。

機能 5: ポートの U1 および U2 遷移を無効にする

この_DSMメソッドが0x01返されると、USB バス ドライバーは、ポートの U1 と U2 の遷移を無効にします。 0X00返された場合、USB バス ドライバーは、U1 と U2 の遷移で説明されている U1 と U2 の遷移の既定のヒューリスティックに フォールバックします。

_DSMメソッドは、USB3 ポートの下に表示する必要があります。 Windows 10 バージョン 2004 (Vibranium) 以降で使用できます。

_DSM制御メソッドのパラメータは次のとおりです。

引数 (関数 5)

  • Arg0: UUID = ce2ee385-00e6-48cb-9f05-2edb927c4899
  • Arg1: リビジョン ID: 0
  • Arg2: 関数インデックス = 5
  • Arg3: 空のパッケージ (未使用)

戻り値 (関数 5)

次のいずれかの値を含む整数:

要素 オブジェクトの種類 説明
U1 と U2 を無効にしますか? 整数 (バイト) U1 と U2 の動作を指定します。

0x00 – USB バス ドライバーは、U1 と U2 の既定のヒューリスティックにフォールバックします。

0x01 – U1 と U2 の切り替えは無効になります。

0x02 – 予約済みの0xff

関数 6: クエリ コントローラーレジスタのアクセスの種類

この機能は、Windows Server 2022 および Windows 11 以降で利用可能です。

USB コントローラーと通信するためのレジスタ アクセスの種類に対してクエリを実行するための_DSM制御メソッドのパラメーターは次のとおりです。

引数 (関数 6)

  • Arg0: UUID = ce2ee385-00e6-48cb-9f05-2edb927c4899
  • Arg1: リビジョン ID: 0
  • Arg2: 関数インデックス = 6
  • Arg3: 空のパッケージ (未使用)

戻り値 (関数 6)

次のいずれかの値を含む整数:

要素 オブジェクトの種類 説明
RegisterAccessType 4 バイト (32 ビット) の unsigned long USB コントローラー レジスタ アクセスの種類を指定します。

0x00 – 未定義のレジスタ アクセス

0x01 – 32 ビット レジスタ アクセスを使用する必要があります

0x02 – 予約済みの0xffffffff

この関数を使用する場合、_DSM メソッドが USB コントローラー デバイスの下に表示される必要があります。

すべての _DSM の関数インデックス 0 は、サポートされている関数インデックスのセットを返すクエリ関数であり、常に必須です。 詳細については ACPI 5.0 仕様のセクション 9.14.1「_DSM (デバイス固有のメソッド)」を参照してください。