SUMMARY
This article describes the maximum size of USB transfers on various Microsoft Windows operating systems.
Microsoft Windows 2000
On Microsoft Windows 2000, the maximum size of a USB
transfer is determined by the device driver that is loaded for the USB device. The maximum size of USB transfers is determined in one of the following ways:
- When the device driver selects the configuration of the device by means of the
URB_FUNCTION_SELECT_CONFIGURATION function.
- When the device driver selects an alternative interface
for the device by means of the URB_FUNCTION_SELECT_INTERFACE function.
In most cases, a
USB transfer on Windows 2000 has no hard-coded size limit except the
limit that is defined by the client driver.
Microsoft Windows XP and Microsoft Windows Server
2003
On both Microsoft Windows XP and Microsoft Windows Server
2003, the maximum size of a USB transfer is defined by the miniport driver of the USB host controller or by the USB port driver (Usbport.sys). (The maximum size of a USB transfer is
not defined by the client driver of the device.) If you use more than the maximum size of a USB transfer, the transfer request may fail, or a stop error may appear on a blue-screen.
On Windows XP
and Windows Server 2003, when the maximum size of a transfer for a bulk endpoint is
either less than 4 kilobytes (KB) or equal to 4 KB, the port driver splits the transaction into
multiple transfers. Theoretically, this behavior makes the maximum size of a USB transfer
unlimited for these endpoints. However, Microsoft has not tested very large transfers, and Microsoft does not recommend very large transfers.
Note On
Windows XP and Windows Server 2003, the maximum size of USB transfers is not
currently propagated to the client driver. This behavior may change in future
versions of Windows.