如果设备包括接口关联描述符,则设备树可以在以下三个级别上进行解析:
如果没有特定于供应商或类的驱动程序可用,则 usb_mid(7D) USB 多接口驱动程序将绑定到复合设备的设备级别节点。
客户机驱动程序绑定到接口关联节点。
如果未找到任何客户机驱动程序,则缺省情况下会绑定 usb_ia(7D) USB 接口关联驱动程序。然后,客户机驱动程序可以绑定到此接口关联的接口级别。
usb_mid 驱动程序为每个 ia 创建一个 ia(接口关联)节点。兼容的 ia 节点名称通常以 usbia 开头。名称 usb,ia 是可将任何 ia 表示为兼容名称尾部的一个兼容名称。如果没有任何其他驱动程序申请此 ia,则 usb_ia 驱动程序将绑定到 ia 节点。usb_ia 驱动程序为每个接口创建一个子节点。作为 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 的客户机驱动程序绑定到特定于供应商和设备的配置 1 的 first_if_in_ia 兼容名称,如Example 20–4 中所示:
add_drv -n -i '"usbia46d,8c9.config1.0"' vendor_model_video_usb
使用以下命令可将名为 video_class_usb_ia_driver 的类驱动程序绑定到较常规的 e 类兼容名称,如Example 20–4 中所示:
add_drv -n -i '"usbia,classee"' video_class_usb_ia_driver
在以下示例中,prtconf –D 命令显示了 Web 摄像头的设备树,其中包含 video 和 audio 的 ia。usb_mid 驱动程序管理设备并分别为 video 和 audio 创建两个 ia。视频驱动程序 usbvc 绑定到视频 ia,而音频驱动程序绑定到音频 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)