USB デバイス レジストリ エントリ

この記事では、USB デバイス固有のレジストリ エントリについて説明します。

重要

このトピックはプログラマー向けです。 USB に関する問題が発生している場合は、「一般的な USB の問題のトラブルシューティング」を参照してください

USB ドライバースタックの動作を構成するためのレジストリ設定

この記事で説明されているレジストリ エントリは、このキーの下にあります。

HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Control
            usbflags
               <vvvvpppprrrr>
                  <Device-specific registry entry>

vvvvpppprrrr キーで、

  • vvvv は、ベンダーを識別する 4 桁の 16 進数です
  • pppp は、製品を識別する 4 桁の 16 進数です。
  • rrrr は、デバイスのリビジョン番号を含む 4 桁の 16 進数です。

ベンダー ID、製品 ID、リビジョン番号の値は、USB デバイス記述子から取得されます。 USB_DEVICE_DESCRIPTOR 構造体は、デバイス記述子を記述します。

次の表では、vvvvpppprrrr キーに使用できるレジストリ エントリについて説明します。 USB ドライバー スタックでは、これらのエントリが読み取り専用の値と見なされます。

レジストリエントリ 説明 有効値
osvc

REG_BINARY
マイクロソフトが定義した USB 記述子のデバイスに対して、クエリを実行したかどうかをオペレーティング システムが示します。 以前に試みた OS 記述子のクエリが成功した場合、値には OS 文字列記述子のベンダー コードが含まれます。
  • 0x0000: デバイスが Microsoft OS 文字列記述子要求に対して有効な応答を提供しませんでした。
  • 0x01xx: デバイスは Microsoft OS 文字列記述子要求に対して有効な応答を提供しました。xx は応答に含まれる bVendorCode です。
IgnoreHWSerNum

REG_BINARY
USB ドライバー スタックがデバイスのシリアル番号を無視する必要があるかどうかを示します。
  • 0x00: 設定は既定では無効になっています。
  • 0x01: デバイスのシリアル番号を無視するように USB ドライバー スタックを強制します。 そのため、デバイス インスタンスは、デバイスが接続されているポートに関連付けられます。
ResetOnResume

REG_BINARY
ポートがスリープ サイクルから再開するときに、USB ドライバー スタックがデバイスをリセットする必要があるかどうかを示します。
  • 0x0000: 設定は既定では無効になっています。
  • 0x0001: USB ドライバー スタックがポートの再開時にデバイスをリセットするように強制します。

Windows で列挙した後のデバイス情報の検索

デバイスに関するデバイス インターフェイス GUID、ハードウェア ID、およびデバイス クラス情報を取得します。

  1. 関心のあるデバイス インターフェイスを公開するデバイスを見つけ、インスタンス ID を書き留めます。 たとえば、デバイス インターフェイスがクラス {A5DCBF10-6530-11D2-901F-00C04FB951ED} に属している場合、次のように適切なデバイス インターフェイスとデバイスを見つけることができます。

    >pnputil /enum-interfaces /class {A5DCBF10-6530-11D2-901F-00C04FB951ED} /instanceid
    
    Microsoft PnP Utility
    
    Interface Path:         \\?\USB#VID_045E&PID_0840#0C33CG9212501N0#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    Interface Description:  Unknown
    Interface Class GUID:   {a5dcbf10-6530-11d2-901f-00c04fb951ed}
    Device Instance ID:     USB\VID_045E&PID_0840\0C33CG9212501N0
    Interface Status:       Enabled
    
    Interface Path:         \\?\USB#VID_045E&PID_07A5#5&109d12e&0&1#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
    Interface Description:  Unknown
    Interface Class GUID:   {a5dcbf10-6530-11d2-901f-00c04fb951ed}
    Device Instance ID:     USB\VID_045E&PID_07A5\5&109d12e&0&1
    Interface Status:       Enabled
    
  2. デバイスの互換性のある ID のリストを取得し、デバイス クラス、サブクラス、およびプロトコル コードをメモします。

    >pnputil /enum-devices /instanceid "USB\VID_045E&PID_0840\0C33CG9212501N0" /ids
    
    Microsoft PnP Utility
    
    Instance ID:                USB\VID_045E&PID_0840\0C33CG9212501N0
    Device Description:         USB Composite Device
    Class Name:                 USB
    Class GUID:                 {36fc9e60-c465-11cf-8056-444553540000}
    Manufacturer Name:          (Standard USB Host Controller)
    Status:                     Started
    Driver Name:                usb.inf
    Hardware IDs:               USB\VID_045E&PID_0840&REV_0215
                                USB\VID_045E&PID_0840
    Compatible IDs:             USB\COMPAT_VID_045E&DevClass_00&SubClass_00&Prot00
                                USB\COMPAT_VID_045E&DevClass_00&SubClass_00
                                USB\COMPAT_VID_045E&DevClass_00
                                USB\DevClass_00&SubClass_00&Prot_00
                                USB\DevClass_00&SubClass_00
                                USB\DevClass_00
                                USB\COMPOSITE