A Windows 7 machine may encounter Bugcheck 0x000000D1 while reading data in a loop from a USB-Serial device

Applies to: Windows 7 Home BasicWindows 7 Home PremiumWindows 7 Professional More

Symptoms


Consider the following scenario:

You have a Windows 7 machine.
You have a serial USB device, while the device reads data in a loop from a USB Serial device; you encounter a Bugcheck 0x000000D1.

Cause


The bugcheck occurs due to a synchronization problem in a code path where it completes a IRP while another is trying to process it.

Resolution


Workarounds:

1. Do not use COMMTIMEOUTS in your device, but Application level timeouts.
2. Move to WinUsb/UMDF.
3. Use the UsbSer source code which is released in the Windows Driver Kit (WDK).
http://msdn.microsoft.com/en-us/library/windows/hardware/gg487428.aspx