Technical Document #56

Technical Document #56
Windows XP crashes (BSOD) when I listen to an isochronous pipe on my USB device.

Currently, when performing repeated USB read transfers from an isochronous pipe ("listening" to the pipe) on Windows XP, the OS may eventually crash (resulting in the Blue Screen of Death — BSOD).
This happens when using a high-speed USB device that is not configured as a high-bandwidth device, and setting the device's bInterval descriptor field to 0x1 or 0x2 (an interval of 1 or 2 microframes) and its wMaxPacketSize descriptor field to 0x0400 (maximum packet siz e of 1KB). When listening to an isochronous pipe of a device with this configuration, on Windows XP, the DMA operation performed by Microsoft's usbport.sys driver, as part of handling the isochronous read transfers, may cause the OS to crash.

A possible work-around for this problem is to set the value of the device's bInterval descriptor field to 0x4, instead of 0x1 or 0x2.