デバイスにインタフェース関連付け記述子が含まれている場合、次の 3 つのレベルでデバイスツリーを解析できます。
使用可能なベンダー固有またはクラス固有のドライバが存在しない場合は、usb_mid(7D) USB マルチインタフェースドライバは、複合デバイスのデバイスレベルノードにバインドします。
インタフェース関連付けノードにクライアントドライバがバインドされます。
クライアントドライバが見つからない場合は、usb_ia(7D) USB インタフェース関連付けドライバがデフォルトでバインドされます。その後、このインタフェース関連付けのインタフェースレベルにクライアントドライバをバインドできます。
usb_mid ドライバは、ia ごとに ia (インタフェース関連付け) ノードを 1 つずつ作成します。ia ノードの互換名は一般に usbia で始まります。名前 usb,ia は互換名の後部として任意の ia を表す互換名です。ia ノードには、その ia を要求するドライバがほかに存在しない場合には、usb_ia ドライバがバインドされます。usb_ia ドライバは、インタフェースごとに子ノードを 1 つずつ作成します。ia ノードの子ノードとしてのインタフェースノードは、デバイスノードの子としてのインタフェースノードと同じ特性を持ちます。
使用例 20-4 USB ビデオインタフェース関連付けの互換名1. 'usbia46d,8c9.5.config1.0' vend 46d, prod 8c9, rev 5, cnfg 1, first_if_in_ia 0 2. 'usbia46d,8c9.config1.0' vend 46d, prod 8c9, cnfg 1, first_if_in_ia 0 3. 'usbia46d,classe.3.0' vend 46d, class e, subclass 3, protocol 0 4. 'usbia46d,classe.3' vend 46d, class e, subclass 3 5. 'usbia46d,classe' vend 46d, class e 6. 'usbia,classe.3.0' class e, subclass 3, protocol 0 7. 'usbia,classe.3' class e, subclass 3 8. 'usbia,classe' class e 9. 'usb,ia' by default
vendor_model_video_usb という名前のベンダー固有、デバイス固有のクライアントドライバを、Example 20–4 に示したベンダー固有、デバイス固有の構成 1、first_if_in_ia 0 互換名にバインドするには、次のコマンドを使用します。
add_drv -n -i '"usbia46d,8c9.config1.0"' vendor_model_video_usb
video_class_usb_ia_driver という名前のクラスドライバを、Example 20–4 に示したより汎用的な class e 互換名にバインドするには、次のコマンドを使用します。
add_drv -n -i '"usbia,classee"' video_class_usb_ia_driver
次の例では、prtconf –D コマンドにより、video と audio の ia を含む、Web カメラのデバイスツリーが表示されています。usb_mid ドライバがこのデバイスを管理し、2 つの ia をそれぞれビデオ用とオーディオ用に作成しています。ビデオ ia にビデオドライバ usbvc がバインドされ、オーディオ ia のインタフェースにオーディオドライバがバインドされています。
miscellaneous, instance #28 (driver name: usb_mid) video, instance #24 (driver name: usbvc) audio, instance #30 (driver name: usb_ia) sound-control, instance #38 (driver name: usb_ac) sound, instance #47 (driver name: usb_as)