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
?
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.