最終更新:2014-12-17 (水) 17:42:10 (3619d)
GET_DESCRIPTOR
Top / GET_DESCRIPTOR
USB/標準リクエストのbRequest = 0x06
- 指定したUSB/ディスクリプタを取得
使い方
リクエストの構造
オフセット フィールド サイズ 値 説明 0 bmRequestType 1 ビットマップ リクエストの性質を表す 1 bRequest 1 Value リクエスト(GET_DESCRIPTORは0x06) 2 wValue 2 Value ディスクリプタの種類とディスクリプタのインデックス 4 wIndex 2 Index or Offset ゼロもしくは言語ID 6 wLength 2 Count ディスクリプタ長
bmRequestType
- リクエストの性質を表す
wValue
- ディスクリプタの種類とインデックス
MSB LSB ディスクリプタの種類(bDescriptorTypeと同じ) ディスクリプタのインデックス(複数の同じディスクリプタがあった時用)
wIndex
- 言語ID(ストリングディスクリプタ用)か0x00(未指定)
bDescriptorType
USB/標準ディスクリプタ
種類 bDescriptorType 備考 DEVICE (デバイスディスクリプタ) 1 必要。18バイト固定 CONFIGURATION (コンフィグレーションディスクリプタ) 2 必要 STRING (ストリングディスクリプタ) 3 指定があれば INTERFACE (インターフェイスディスクリプタ) 4 必要 ENDPOINT (エンドポイントディスクリプタ) 5 エンドポイント0 以外は必要
USB 2.0で追加
名前 英語 bDescriptorType メモ デバイスクオリファイアディスクリプタ DEVICE_QUALIFIER? 6 Hi-Speed USB をサポートする場合、必要 アザースピードコンフィグレーションディスクリプタ OTHER_SPEED_CONFIGURATION? 7 Hi-Speed USB をサポートする場合、必要
標準以外のディスクリプタ
USB 2.0のECNとかで追加
インターフェイスパワーディスクリプタ INTERFACE_POWER? 8 Microsoft の拡張仕様 OTG 9 OTGの仕様で定義 DEBUG 10(0x0A) インターフェイスアソシエーションディスクリプタ 11(0x0B) 複合デバイス設定,UVCで定義 BOSディスクリプタ BOS? (Binary Device Object Store) 15(0x0F) デバイスキャパビリティディスクリプタ?指定,LPMサーポートに必要,USB 2.0のECNで定義 デバイスキャパビリティディスクリプタ? DEVICE_CAPABILITY? 16(0x10) Super Speed/High Speed時のLink Message対応通知,LPMサーポトに必要,USB 2.0のECNで定義
USB 3.0で追加
SUPERSPEED_USB_ENDPOINT_COMPANION? 0x30 Burst転送最大長
USB/クラスディスクリプタ
種類 bDescriptorType HID 21 HIDのレポートディスクリプタ 22 HIDのフィジカルディスクリプタ 23 USBハブ 29
指定できるディスクリプタ
- 本によって書いてあることが微妙に違った。
参考図書/USBコンプリート
- 指定できるディスクリプタ
- その他のディスクリプタはコンフィグレーションディスクリプタかアザースピードコンフィグレーションディスクリプタを要求した時にまとまって読み出される
参考図書/USB 3.0設計のすべて
- 指定できるディスクリプタ
- その他のディスクリプタはBOSディスクリプタかコンフィグレーションディスクリプタを要求した時にまとまって読み出される