本人最近在学习Win8 MBIM,有个关于Identity morphing的疑问请教各位高手:
从文档中可以看到:”Windows provides an identity morphing solution that enables the device to exhibit behavior that is appropriate for the operating system to which it is connected. “ 也就是identity morphing solution 可以解决,Device根据当前OS,提供与之相对应的设备组合的问题,如若是WIN8即会枚举MBIM,否则反之。
但是,看了几遍mbim-device-requirements.docx中,Identity morphing章节的内容,能得到的信息是:
1 windows 提供4种USB Configurations,关于不同的设备组合。
2 USBCCGP加载流程中,
a USBHUB querying the Microsoft OS descriptor from the device during enumeration.
b Device returns CompatId in the not-configured state. This CompatId is used to load USBCCGP.
c USBCCGP selects the configuration reported in the subcompatible ID.
d Device morphs its Microsoft OS descriptor based on the new configuration. USBCCGP queries for the Microsoft OS descriptor.
.......
疑问:
加载流程中C提到,USBCCGP选择的configuration,是由在b,Device上报的Microsoft OS descriptor内容的subcompatible ID决定,但是Device如何知道当前OS,并以此定义相应的subcompatible ID。
另外一个问题:
从USB Log上看,GET_MS_DESCRIPTOR中,Device不返回compatible and subcompatible ID信息.
此ID需要从extended compat ID OS descriptor 中返回。DATA OF HOST'S RETRIEVING 如:CO FE 00 00 04 00 10 00
但是,发现不是所有Device,Host都有发 extended compat ID OS descriptor Request。请问Host根据哪个信息决定是否发此Request?
请各位指点,谢谢!