我在TI814X评估板上使用Meego的MTP代码(Buteo MTP = daemon + functionfs)。当连接到Win7时,它被检测为 Protable Device ,我被允许打开资源管理器。但是在WinXP上,它被检测为数码相机,因此我可以开放扫描和图像编辑器,而探险家图标则是相机。
准备:我已将设备类型设置为0x03('便携设备')。我给了我的设备一个唯一的名称,并在每次尝试从注册表中出现此名称之前删除(否则我的更改不会出现在Windows上)。
我已经将'USB View'的输出与我的三星Galaxy手机进行了比较,我找到的唯一区别是bDeviceProtocol,它被移动设备设置为“1”(针对specification of PTP)。将此值应用于我的硬件没有任何区别。
打开硬件管理器时,我可以列出Compatible IDs
。在这些ID中,三星移动列表
USB\MS_COMP_MTP
USB\Class_06&SubClass_01&Prot_01
USB\Class_06&SubClass_01
USB\Class_06
虽然我的设备缺少第一个条目:
USB\Class_06&SubClass_01&Prot_01
USB\Class_06&SubClass_01
USB\Class_06
此外,移动设备的服务仅为WUDRFd
,而我的设备仅为usbscan
。
问题: MS_COMP_MTP
触发了什么?它是我的USB / MTP配置的选项还是由vencor /产品ID触发?如何让我的设备使用WUDRFd
代替usbscan
?
答案 0 :(得分:0)
有一个名为“Microsoft OS Descriptor”的数据结构。这可以由设备转移到Windows并导致此“MS_COMP_MTP”标志。
当前的Windows版本确实在没有此描述符的情况下检测MTP - 但是Windows XP still needs it。
感谢彼得information。