USB ドライバーでの USB 構成選択の概要

このセクションのトピックでは、クライアント ドライバーでデバイスを適切に構成する方法について説明します。

USB デバイスは、USB 構成と呼ばれる一連のインターフェイスの形式でその機能を公開します。 各インターフェイスは 1 つ以上の代替設定で構成され、各代替設定は一連のエンドポイントで構成されます。 デバイスは 1 つ以上の構成を提供する必要がありますが、デバイスで実行できる操作を相互排他的に定義した複数の構成を提供することもできます。 構成記述子の詳細については、「USB 構成記述子」を参照してください。

デバイス構成とは、クライアント ドライバーで各インターフェイスの USB 構成と代替インターフェイスを選択するために実行するタスクを指します。 I/O 要求をデバイスに送信する前に、クライアント ドライバーはデバイスの構成を読み取り、情報を解析して、適切な構成を選択する必要があります。 デバイスを動作させるには、サポートされている構成をクライアント ドライバーが少なくとも 1 つ選択する必要があります。

WDM ベースのクライアント ドライバーは、USB デバイス内の任意の構成を選択できます。

クライアント ドライバーがカーネル モード ドライバー フレームワークまたはユーザー モード ドライバー フレームワークに基づいている場合は、USB デバイスを構成するために、それぞれのフレームワーク インターフェイスを使用する必要があります。 Microsoft Visual Studio Professional 2012 で提供される USB テンプレートを使用している場合、テンプレート コードでは各インターフェイスの最初の構成と既定の代替設定が選択されます。

このセクションの内容

トピック 説明
USB デバイス用の構成の選択方法 このトピックでは、ユニバーサル シリアル バス (USB) デバイスの構成を選択する方法について説明しています。
USB インターフェイスにおける代替設定の選択方法 このトピックでは、USB インターフェイスで代替設定をアクティブ化するためにインターフェイス選択要求を発行する手順について説明しています。 クライアント ドライバーは、USB 構成を選択した後にこの要求を発行する必要があります。 既定では、構成を選択すると、その構成に含まれる各インターフェイスの最初の代替設定も同時にアクティブになります。
既定以外の USB 構成を選択するための Usbccgp.sys の構成 このトピックでは、Usbccgp.sys が USB 構成を選択する方法を構成するレジストリ設定について説明します。 また、複合デバイスのいずれかのファンクションを制御するクライアント ドライバーから送信された構成選択要求を Usbccgp.sys が処理する方法についても説明します。

ファームウェアのダウンロードを必要とするデバイスの構成に関連する特別な考慮事項については、ファームウェアのダウンロードを必要とする USB デバイスの構成に関するトピックを参照してください。

構成の選択に関する制限事項

クライアント ドライバーが WDF オブジェクトを使用している場合や、デバイスに単一のインターフェイスがあるか複数のインターフェイスがあるかどうかについて、特定の制限が適用されます。 既定の構成を変更する前に、次の制限事項を考慮してください。

  • USB 汎用親ドライバー (Usbccgp.sys) を通じてインターフェイスまたはインターフェイス コレクションを管理する複合デバイスのクライアント ドライバーは、デバイスの構成値を変更できません。 ただし、クライアント ドライバーは、最初の (既定の) 構成以外の構成を選択するように Usbccgp.sys を構成できます。 詳細については、「既定以外の USB 構成を選択するための Usbccgp.sys の構成」を参照してください 。
  • フレームワークの USB I/O ターゲットを使用している KMDF ベースのクライアント ドライバーでは、最初の構成のみを選択できます。
  • WinUSB では、最初の構成のみがサポートされます。
  • クラス ドライバーでは、多くの場合、複数の構成のサポートがありません。 USB クラス仕様で定義されているクラスをデバイスが実装している場合は、USB テクノロジの Web サイトでデバイス クラスとクラスの仕様を確認してください。 Microsoft では、サポートされている USB デバイス クラスのクラス ドライバーを提供しています。 詳細については、「サポートされている USB デバイス クラスのドライバー」を参照してください。