標準の USB 識別子
USB デバイス用に生成される識別子のセットは、デバイスが単一インターフェイス デバイスか、複数インターフェイス デバイスかによって異なります。
シングルインターフェイス USB デバイス
新しい USB デバイスが接続されると、システム提供の USB ハブ ドライバーは、デバイスのデバイス記述子から抽出された情報を使用して、次のデバイス ID を構成します。
USB\VID_v(4)&PID_d(4)&REV_r(4)
ここで:
- v(4) は、USB 委員会がベンダーに 割り当てるベンダー コードです。
- d(4) は、ベンダーがデバイスに割り当てる製品コードです。
- r(4) はリビジョン コードです。
ハブ ドライバーは、デバイス記述子の idVendor、idProduct、および bcdDevice フィールドからベンダーと製品コードをそれぞれ抽出します。 これらのコードは 4 桁の 16 進数です。
INF モデル セクションでは、次のハードウェア ID を指定することもできます。
USB\VID_v(4)&PID_d(4)
次の互換性のある ID:
USB\CLASS_c(2)&SUBCLASS_s(2)&PROT_p(2)
USB\CLASS_c(2)&SUBCLASS_s(2)
USB\CLASS_c(2)
ここで:
- c(2) は、デバイス記述子から取得された デバイス クラス コードです。
- s(2) はデバイス サブクラス コードです。
- p(2) はプロトコル コードです。
device 記述子の bDeviceClass、bDeviceSubClass、および bDeviceProtocol フィールドはデバイス クラス コード、サブクラス コード、プロトコル コードをそれぞれ決定します。 これらのコードは 2 桁の 16 進数です。
マルチインターフェイス USB デバイス
複数のインターフェイスを持つデバイスは複合デバイスと呼ばれます。 新しい USB 複合デバイス が Windows コンピューターに接続されると、USB ハブ ドライバーは物理デバイス オブジェクト (PDO) を作成し、子デバイスの一覧を更新するようにオペレーティング システムに通知します。 Windows は、新しい PDO に関連付けられているハードウェア識別子をハブ ドライバーに照会した後、適切な INF ファイルを検索して識別子の一致を検索します。 USB\COMPOSITE 以外の一致が見つかると、INF ファイルに示されているドライバーが読み込まれます。 ただし、他の一致するものが見つからない場合、オペレーティング システムは USB 汎用親ドライバーを読み込む互換性のある ID USB\COMPOSITE を使用します。 その後、汎用の親ドライバーは、個別の PDO を作成し、複合デバイスのインターフェイスごとに個別のハードウェア識別子のセットを生成します。
各インターフェイスには、次の形式のデバイス ID があります。
USB\VID_v(4)&PID_d(4)&MI_z(2)
ここで:
- v(4) は、USB 委員会がベンダーに 割り当てるベンダー コードです。
- d(4) は、ベンダーがデバイスに割り当てる製品コードです。
- z(2) は、対応するインターフェース記述子の bInterfaceNumber フィールドから抽出されるインターフェース番号です。
INF モデル セクションでは、次の互換性のある ID を指定することもできます。
USB\CLASS_d(2)&SUBCLASS_s(2)&PROT_p(2)
USB\CLASS_d(2)&SUBCLASS_s(2)
USB\CLASS_d(2)
USB\COMPOSITE
ここで:
- d(2) は、デバイス記述子から取得された デバイス クラス コードです。
- s(2) はサブクラス コードです。
- p(2) はプロトコル コードです。
インターフェイス記述子の bInterfaceClass、bInterfaceSubClass、および bInterfaceProtocol フィールドはデバイス クラス コード、サブクラス コード、プロトコル コードをそれぞれ決定します。 これらのコードは 2 桁の 16 進数です。