Important: |
---|
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist. |
Windows CE 2.10 and later support all four types of data transfer defined in the Universal Serial Bus Specification, Revision 1. Device drivers for USB devices can use any of the following transfer types, as appropriate:
Control transfers are bidirectional transfers that are used by the USB system software mainly to query, configure, and issue certain generic commands to USB devices. Control transfers typically take place between the host computer and the USB device's endpoint 0, but vendor-specific control transfers may use other endpoints.
Isochronous transfers provide guaranteed amounts of bandwidth and latency. They are used for streaming data that is time-critical and error-tolerant or for real-time applications that require a constant data transfer rate. For example, an Internet telephony application that carries a conversation in real time is a good candidate for isochronous transfer mode. Isochronous data requires guaranteed amounts of bandwidth and guaranteed maximum transmission times. For isochronous transfers, timely data delivery is much more important than perfectly accurate or complete data transfer.
Interrupt transfers are used mainly to poll devices to check if they have any interrupt data to transmit. The device's endpoint descriptor structure determines the rate of polling, which can range from 1 through 255 milliseconds. This type of transfer is typically used for devices that provide small amounts of data at sporadic, unpredictable times. Keyboards, joysticks, and mouse devices fall into this category.
Bulk transfers are for devices that have large amounts of data to transmit or receive and that require guaranteed delivery, but do not have any specific bandwidth or latency requirements. Printers and scanners fall into this category. Very slow or greatly delayed transfers can be acceptable for these types of device, as long as all of the data is delivered eventually. However, in the absence of any other demands for bus bandwidth, Windows CE processes bulk transfers as quickly as possible.
Note: Windows CE 2.10 and later have limits on the amounts of data per transfer. All data transfers using USBDI transfer functions are limited to 8K of data per transfer, due to an internal limitation in Microsoft's USB implementation. If you are porting USB client drivers from Microsoft Windows NT, Windows 95 or Windows 98, you may need to make changes in your code to enforce a limit of 8K per transfer.
Last updated on Tuesday, July 13, 2004