Hi,
I'm developing a USB driver for WinCE5.0 and planning to support a
device with multiple configurations. I don't see any USBD interface
for Select_Config. Then I was planning to issue a vendor transfer for
a select_config. However, in one of discussion forums, I found out
that we should not issue a vendor request for a Select-Config. Instead
it should be a Control transfer. As am writing a function (client)
driver, I don't have the pipe_handle to issue a control transfer!!
Then I found one more post regarding the same in another discussion
forum. It highlighted the steps as below -
You should be able to select any device configuration using the
following CE USB functions:
ClearFeature: Sends a CLEAR_FEATURE request to a USB device.
GetDescriptor: Sends a GET_DESCRIPTOR request to a USB device.
GetInterface: Sends a request to a USB device for information about
alternate device settings.
GetStatus: Sends a GET_STATUS request to a USB device.
SetDescriptor: Sends a SET_DESCRIPTOR request to a USB device.
SetFeature: Sends a SET_FEATURE request to a USB device.
SetInterface: Sends a SET_INTERFACE request to a USB device, to change
the device's settings
The first step says, I should send a CLEAR_FEATURE. My question is,
issue CLEAR_FEATURE to clear what? Should I send
USB_REQUEST_SET_CONFIGURATION as the "wFeature" argument in the call
lpClearFeature? I tried this, but I got a USB_STALL_ERROR in return!
Any help is appreciated
Thanks,
Sri