Microsoft KB Archive/196121

{|
 * width="100%"|

BUG: PCI Device Fails After Suspend/Resume on Windows 95 OSR2

 * }

Q196121

-

The information in this article applies to:


 * Microsoft Win32 Device Driver Kit (DDK) Windows 95

-

SYMPTOMS
Under Windows 95 OSR2, following a suspend/resume sequence, a PCI device may fail to work properly. Examining the device in Device Manager shows that the device has been disabled in hardware, displaying error code 29.

CAUSE
This problem is caused by a rebalance bug in Windows 95 OSR2. During the process of arbitrating device IRQ resources, Configuration Manager will perform a rebalance if it determines that there are insufficient system IRQs available to satisfy device requirements. A rebalance commonly results in multiple PCI interrupts being combined and routed to one system IRQ. The bug, however, can result in a rebalanced PCI IRQ Holder having a NULL devnode. During the suspend process, Configuration Manager tries to remove resources for PCI devices but fails if a device's IRQ Holder has a NULL devnode, resulting in that PCI device being marked with CM_PROB_HARDWARE_DISABLED (error code 29).

RESOLUTION
As a workaround, reducing device IRQ requirements in the system can prevent the IRQ rebalance, and this bug, from occurring. Leaving at least one system IRQ unused prevents this problem.

STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This bug was fixed in Windows 98.

MORE INFORMATION
Due to the nature of PCI interrupts and IRQ routing, this bug may or may not be evident on a given system based on a number of variables including PCI slot design (how the PCI interrupts are routed between slots), PCI card interrupt usage, and system IRQ availability.

Additional query words:

Keywords : kbDDK kbOSWin95bug kbOSWin98fix

Issue type : kbbug

Technology : kbAudDeveloper kbWin95search kbWinDDKSearch kbWin32sSearch kbWin32DDK95 kbWin32DDKSearch