Knowledge Base

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

PSS ID Number: 196121

Article Last Modified on 10/16/2002


The information in this article applies to:


This article was previously published under Q196121

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.

Keywords: kbBug kbOSWin98fix KB196121
Technology: kbAudDeveloper kbWin32DDK95 kbWin32DDKSearch kbWin32sSearch kbWin95search kbWinDDKSearch