This article has been archived. It is offered "as is" and will no longer be updated.
On a Microsoft Windows-based computer, you perform a surprise removal of a universal serial bus (USB) device. When you try to put the operating system into S3 sleep (standby), the operating system may stop responding. When this problem occurs, the Plug and Play (PnP) manager may be unable to process any device removal actions or any device enumeration actions.
This problem may occur if the USB device is implemented by a Kernel-Mode Driver Framework driver that reads data from a bulk endpoint on the USB device using a USB Continuous Reader. A USB Continuous Reader is a framework-supplied mechanism.
This problem may occur in one of the following Windows operating systems:
Windows Server 2008
Windows Server 2003
This problem is caused by an error in the Microsoft Kernel-Mode Driver Framework version 1.7 and earlier, and may affect USB devices with drivers written for the Kernel-Mode Driver Framework version 1.7 and earlier.
This problem is scheduled to be fixed in the Kernel-Mode Driver Framework version 1.9 that is scheduled for release in the Microsoft Windows Driver Kit for Windows 7. To resolve this problem, developers of USB device drivers should build and install the driver by using the Kernel-Mode Driver Framework version 1.9.
To work around this problem, set the NumPendingReads member to 1 in the Kernel-Mode Driver Framework driver code when you configure a continuous reader for a USB device that uses the Kernel-Mode Driver Framework.
If the rate of the read events on the affected USB endpoint (pipe) is high, this workaround may cause occasional loss of the data that is received from the USB device. For example, if the USB endpoint has data that must be read while a previously completed single read request is being processed by the owning driver, data loss may occur.
For more information, see the following topics of the Windows Driver Kit documentation on the following Microsoft Developer Network (MSDN) Web sites: