Windows CE 2.10 supports the following USB features:
Windows CE supports enumeration of USB devices on the bus. The bus enumeration process is a multistep query sequence: the HCD module acquires information from a connected device, assigns it a unique USB address, and sets a configuration value. Once enumeration is complete, the device is configured and ready to conduct, transmit, and receive transactions. At this point, the USBD module attempts to load one or more USBDs to control the device, based on the information contained in the device and interface descriptors. If no suitable driver has been registered for the device, the user is prompted to enter the name of a driver to control the device.
Windows CE provides support for bus-powered and self-powered devices. For both types of device, the USBD module reads the power requirements of the device from the descriptor information and rejects the device if it exceeds the maximum power threshold. OEMs can set the current-draw limit, so IHVs should not rely on any particular amount of available current, except as detailed in the Universal Serial Bus Specification, Revision 1.0.
As mentioned, Windows CE supports all four types of data transfer defined in the Universal Serial Bus Specification. USB device drivers can use any of the transfer types that are appropriate for their peripherals. However, Windows CE 2.10 does not support the control transfers defined in the Universal Serial Bus Specification, Revision 1.0 to put a USB device into the suspend state. Depending on device capabilities, however, a USB device driver may be able to suspend the device by using the SetConfiguration function to deconfigure the device.
The USB architecture implemented in Windows CE supports loading class drivers, although Microsoft does not supply any sample class drivers. Examples of device classes include the stream class and the human input device (HID) class, among others. OEMs or IHVs can write their own class drivers and load them appropriately, using the registry mechanism.
There is no support on Windows CE 2.10 for making a Windows CE–based platform itself appear as a USB peripheral to other host computers. That is, the HCD and USBD modules in Windows CE supplied by Microsoft do not provide facilities to connect a Windows CE–based platform to a desktop computer running as a USB host.