最終更新:2022-06-03 (金) 15:16:22 (1057d)
インターフェイスアソシエーションディスクリプタ
Top / インターフェイスアソシエーションディスクリプタ
IAD
複数のインターフェースを持ったクラスを含んだコンポジットデバイスを構成する場合のディスクリプタ仕様
メモ
- The Interface Association Descriptor is used to describe that two or more interfaces are associated to the same function.
- A device must use an Interface Association descriptor for each device function that requires more than one interface.
- IAD は GET_DESCRIPTOR(Configuration) リクエストの結果の一部として返される。
- IAD は GET_DESCRIPTOR() または SET_DESCRIPTOR?() で直接にはアクセスできない。
- どのインターフェイスが組になっていて、その組がどのデバイスクラスに属するかという情報を提供
使いドコロ
- UVC - USB Video Class Specification (Class Code - 0x0E)
- USBオーディオ 2.0 - USB Audio Class Specification (Class Code - 0x01)
- USB Bluetooth Class Specification (Class Code - 0xE0)
- USB 3.0ではすべての複数インターフェイスを持つ機能がIADを使用しなければならない。
USB.org
http://www.usb.org/developers/docs/InterfaceAssociationDescriptor_ecn.pdf
http://www.usb.org/developers/whitepapers/iadclasscode_r10.pdf
Windows
- Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 Service Pack 1 (SP1), and Windows XP Service Pack 2 (SP2) support IADs.
MSDN
親子関係
デバイスディスクリプタ └コンフィグレーションディスクリプタ └インターフェイスアソシエーションディスクリプタ └インターフェイスディスクリプタ └インターフェイスディスクリプタ
IADを使うときのデバイスディスクリプタ
Field Offset Size 値 詳細 bDeviceClass 4 1 0xEF Miscellaneous Device Class bDeviceSubClass 5 1 0x02 Common Class bDeviceProtocol 6 1 0x01 Interface Association Descriptor
構造
Field Offset Size 詳細 bLength? 0 1 Descriptor の全体長。 bDescriptorType 1 1 ディスクリプタの種別番号。0x0B (11) = IAD bFirstInterface? 2 1 IADで括るはじめのインターフェイス番号 bInterfaceCount 3 1 IADで括るインターフェイス数 bFunctionClass 4 1 IADで括るインターフェイスのクラス bFunctionSubClass 5 1 Subclass code (assigned by USB-IF) bFunctionProtocol 6 1 Protocol code (assigned by USB-IF). These codes are qualified by the values of the bFunctionClass and bFunctionSubClass fields. iFunction? 7 1 Index of string descriptor describing this function.
参考
http://www.uquest.co.jp/ps/middleware/cs/usb06.html
http://oasynnoum.hatenablog.com/entry/2013/03/24/155828
http://monoist.atmarkit.co.jp/mn/articles/1007/20/news097.html