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.
|