最終更新:2022-06-03 (金) 15:16:22 (692d)  

インターフェイスアソシエーションディスクリプタ
Top / インターフェイスアソシエーションディスクリプタ

IAD

複数のインターフェースを持ったクラスを含んだコンポジットデバイスを構成する場合のディスクリプタ仕様

USB 2.0ECNとして定義

メモ

  • 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

Windows

MSDN

親子関係

  • デバイスディスクリプタ
      └コンフィグレーションディスクリプタ
        └インターフェイスアソシエーションディスクリプタ
           └インターフェイスディスクリプタ
           └インターフェイスディスクリプタ

IADを使うときのデバイスディスクリプタ

構造

  • FieldOffsetSize詳細
    bLength?01Descriptor の全体長。
    bDescriptorType11ディスクリプタの種別番号。0x0B (11) = IAD
    bFirstInterface?21IADで括るはじめのインターフェイス番号
    bInterfaceCount31IADで括るインターフェイス数
    bFunctionClass41IADで括るインターフェイスのクラス
    bFunctionSubClass51Subclass code (assigned by USB-IF)
    bFunctionProtocol61Protocol code (assigned by USB-IF). These codes are qualified by the values of the bFunctionClass and bFunctionSubClass fields.
    iFunction?71Index of string descriptor describing this function.

参考

関連