標準の USB 識別子

USB デバイス用に生成される識別子のセットは、デバイスが単一インターフェイス デバイスか、複数インターフェイス デバイスかによって異なります。

単一インターフェイス USB デバイス

新しい USB デバイスが接続されると、システム提供の USB ハブ ドライバーは、デバイスのデバイス記述子から抽出された情報を使用して、次のデバイス ID を構成します。

USB\VID_v(4)&PID_d(4)&REV_r(4)

ここで:

ハブ ドライバーは、デバイス記述子idVendoridProduct、および 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) はプロトコル コードです。

デバイス クラス コード、サブクラス コード、およびプロトコル コードは、デバイス記述子bDeviceClassbDeviceSubClass、および bDeviceProtocol フィールドによってそれぞれ決定されます。 これらは 2 桁の 16 進数です。

複数インターフェイス USB デバイス

複数のインターフェイスを持つデバイスは複合デバイスと呼ばれます。 Windows 2000 以降では、新しい USB 複合デバイス がコンピューターに接続されると、USB ハブ ドライバーによって物理デバイス オブジェクト (PDO) が作成され、子デバイスのセットが変更されたことをオペレーティング システムに通知します。 システムは、新しい PDO に関連付けられているハードウェア識別子 をハブ ドライバーで照会した後で、オペレーティングシステムは、適切な INF ファイルを検索して ID の一致を見つけます。 USB\COMPOSITE 以外の一致が見つかると、INF ファイルに示されているドライバーが読み込まれます。 ただし、他の一致するものが見つからない場合、オペレーティング システムは互換性のある ID USB\COMPOSITE を使用し、USB 汎用親ドライバーを読み込みます。 その後、汎用親ドライバーは個別の PDO を作成し、複合デバイスのインターフェイスごとに個別のハードウェア識別子のセットを生成します。

各インターフェイスには、次の形式のデバイス ID があります。

USB\VID_v(4)&PID_d(4)&MI_z(2)

ここで:

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) はプロトコル コードです。

デバイス コード、サブクラス コード、およびプロトコル コードは、インターフェイス記述子bInterfaceClassbInterfaceSubClass、および bInterfaceProtocol フィールドによってそれぞれ決定されます。 これらは 2 桁の 16 進数です。