Question

I'm using Meego's MTP code (Buteo MTP = daemon + functionfs) on a TI814X evaluation board. When connecting to Win7 it's detected as Protable Device and I'm offered to open the explorer. But on WinXP it's detected as Digital Camera and thus I get offered to open scan- and image-editors and the explorer-icon is a camera.

Preparations: I've set the device type to 0x03 ('portable device'). I gave my device a unique name and delete before each try all occurrences of this name from the registry (otherwise my changes do not appear on Windows).

I ve compared the output of 'USB View' with my Samsung Galaxy mobile, and the only difference I found is bDeviceProtocol, which is set to "1" by the mobile (against the specification of PTP). Applying this value to my hardware makes no difference.

When opening the hardware manager, I can list the Compatible IDs. In these IDs the Samsung mobile lists

USB\MS_COMP_MTP
USB\Class_06&SubClass_01&Prot_01
USB\Class_06&SubClass_01
USB\Class_06

while my device lacks of the first entry:

USB\Class_06&SubClass_01&Prot_01
USB\Class_06&SubClass_01
USB\Class_06

Also the service of the mobile is WUDRFd and of my device only usbscan.

Questions: By what is the MS_COMP_MTP triggered? Is it an option of my USB-/MTP-configuration or is it triggered by the vencor/product ID? How can I make my device use of WUDRFd instead of usbscan?

Was it helpful?

Solution

There is a data structure called "Microsoft OS Descriptor". This can be transfered to Windows by the device and causes this "MS_COMP_MTP" flag.

The current Windows versions do detect MTP without this descriptor - but Windows XP still needs it.

Thanks to Peter for this information.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top