0

我在TI814X 评估板上使用 Meego 的 MTP 代码( Buteo MTP = daemon + functionfs)。连接到 Win7 时,它被检测为便携式设备,我可以打开资源管理器。但在 WinXP 上,它被检测为数码相机,因此我可以打开扫描和图像编辑器,而资源管理器图标是相机。

准备工作:我已将设备类型设置为 0x03(“便携式设备”)。我给了我的设备一个唯一的名称,并在每次尝试从注册表中所有出现的该名称之前删除(否则我的更改不会出现在 Windows 上)。

我已经将“USB View”的输出与我的三星 Galaxy 手机进行了比较,我发现唯一的区别是 bDeviceProtocol,它被手机设置为“1”(违反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 触发的?如何让我的设备使用 ofWUDRFd而不是usbscan

4

1 回答 1

0

有一种称为“ Microsoft OS Descriptor ”的数据结构。这可以由设备传输到 Windows 并导致此“MS_COMP_MTP”标志。

当前的 Windows 版本确实检测到没有此描述符的 MTP,但 Windows XP仍然需要它

感谢 Peter 提供的信息

于 2012-11-12T08:57:56.157 回答