linux - 通过 WinXP 上的 MTP - 数码相机而不是可移植设备

标签 linux windows-7 windows-xp mtp

我在 TI814X 评估板上使用 Meego 的 MTP 代码(Buteo MTP = 守护进程 + functionfs)。连接到 Win7 时,它被检测为可移植设备,并要求我打开资源管理器。但在 WinXP 上,它被检测为数字相机,因此我被要求打开扫描和图像编辑器,而资源管理器图标是一个相机。

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

我将“USB View”的输出与我的三星 Galaxy 手机进行了比较,我发现的唯一区别是 bDeviceProtocol,它被手机设置为“1”(相对于 specification of PTP )。将此值应用于我的硬件没有什么区别。

打开硬件管理器时,我可以列出兼容ID。在这些 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

最佳答案

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

当前的 Windows 版本确实可以在没有此描述符的情况下检测 MTP - 但 Windows XP still needs it .

感谢 Peter information .

关于linux - 通过 WinXP 上的 MTP - 数码相机而不是可移植设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13292737/

相关文章:

windows-7 - 如何与在 Ubuntu 中的 vmWare 工作站上运行的 Windows 7 共享 Ubuntu 的 XAMPP 安装

c# - 确定窗口打开的顺序

linux - 无法使用 bash 设置环境变量

linux - 汇编中长值列表的最大值

C++ 函数在 windows 中完美运行但在 linux 中不完美?

java - Windows 7 命令提示符 : Typing android. bat 返回 java.exe 选项

windows - 在 Win7 机器上拖放到我的应用程序

c - 如何用windows主机文件响应请求?

c# - 我的应用程序如何查找旧版本的辅助文本文件?

linux - 范围 : bytes 0- FAILS in Apache 2. 2.23