I have a device which is running on wince5.0. I am trying to communicate with the device from the PC via WinUSB driver, but facing an issue in the device descriptor that it is not sending the Manufacturer string even though it is available in the registry.I am getting only the index to the string descriptor that is 0x01.

1 Answer
1

The device descriptor only contains an index pointing to a string descriptor.

The USB enumerator generates separate control transfers to retrieve the string contents. A typical conversation would be

get device descriptor

get string descriptor 0 (list of supported locales)

get string descriptor 1, with the selected locale.

Your device needs to respond to both the string descriptor requests with index 0 with unspecified locale, and index 1 with one of the locales listed as supported, otherwise the device name will not show up.

Thank you.We have a test application that runs on a win7 PC using winusb driver for communicating with the wince device.After usb enumeration ,the host application is trying to read the device using the winusb driver.In the USB log that we captured using an analyzer we could see that in the setup packet request for the sting descriptor that is bieng sent by the host the language id is zero (neutral).the wince device is unable to recognise the language id.Why the Winusb driver is sending the language id as zero in the setup packet? Kindly help me on this
–
user2964327Dec 12 '13 at 10:33

The first query is for string descriptor 0, language ID 0. This is a special string, containing the list of supported language IDs.
–
Simon RichterDec 12 '13 at 13:07