MB 联合功能描述符

联合函数描述符

实现 UFD 的移动宽带设备具有 CDC 设备所需的设备类/子类/协议 2/0/0。 这可以防止 Windows 在设备上加载 USBCCGP。 有关 Windows 如何在复合设备上加载 USBCCGP 的信息,请参阅 USB 通用父驱动程序 (Usbccgp.sys)

若要允许 Windows 加载 USBCCGP,设备需要在未配置设备时报告 Microsoft OS 兼容 ID“CDC_WMC”。 检测到“CDC_WMC”的兼容 ID 后,Windows 将加载 USBCCGP,USBCCGP 将设备上的配置设置为 1。 然后,USBCCGP 将再次查询 Microsoft OS 兼容 ID。 但是,这一次,设备不应报告 Microsoft OS 兼容 ID 为“CDC_WMC”。 设备可能会报告所选配置中函数的 Microsoft OS 兼容 ID。

usbhub 在未配置设备时查询 microsoft os 描述符。

未配置设备时,USBHUB 查询 Microsoft OS 描述符

设备使用 cdc-wmc 做出响应,这会导致 Windows 加载 usbccgp。

设备使用“CDC_WMC”做出响应,这会导致 Windows 加载 USBCCGP

usbccgp 选择设备上的配置 #1。

USBCCGP 在设备上选择“配置”#1。

设备选择配置并变形兼容 ID 的列表。

设备选择配置并更改兼容 ID 的列表。 设备可能包含 Function2 所必需的 CompatID2。

加载后,usbccgp 会再次查询 microsoft os 兼容 ID。

加载后,USBCCGP 会再次查询 Microsoft OS 兼容 ID。

设备报告其函数的任何兼容 ID。

设备报告其功能的任何兼容 ID。 然后,USBCCGP 会为设备中的每个函数创建子设备节点。

MBIM Backward-Compatible函数

默认情况下,与 NCM 1.0 规范向后兼容的 MBIM 函数将作为 NCM 1.0 函数出现。 由 MBIM 向后兼容函数组成的移动宽带设备应为 MBIM 函数报告 Microsoft OS 兼容 ID 为“MBIM”。 这允许Windows 8将 NCM 1.0 函数检测为 MBIM 函数,并将 MBCD 作为函数驱动程序加载。