WinNT x86 MPS HAL Can Fail To Map System Relative IRQs

This article was previously published under Q182540
This article has been archived. It is offered "as is" and will no longer be updated.
Under very specific circumstances, Windows NT may fail to assign a system-relative Interrupt Request Level (IRQL) to a Peripheral ComponentInterconnect (PCI) device.

A driver first calls HalAssignSlotResources to retrieve the bus-relativeIRQL for the PCI device. When the driver calls HalGetInterruptVector to mapthe bus-relative IRQL, the call may fail.
This problem is caused when a multiprocessor hardware-abstraction layer(HAL) is used on a specific PCI configuration. For any non-zero bus, if aPCI device is at Device #0 and it is the only PCI device on that bus, theinterrupt assignment fails. If there is more than one PCI device on thebus, this problem does not occur.

This problem has occurred on systems with PCI Accelerated Graphics Port(AGP) video devices because they are typically the only devices on the busand they are not on bus zero. Also, systems with multiple PCI buses mighthave this problem.
To resolve this problem, obtain the latest service pack for Windows NT 4.0 or Windows NT Server 4.0, Terminal Server Edition. For additional information, click the following article number to view the article in theMicrosoft Knowledge Base:
152734 How to Obtain the Latest Windows NT 4.0 Service Pack

Microsoft has confirmed that this is a problem in Windows NT 4.0 and Windows NT Server 4.0, Terminal Server Edition. This problem was first corrected in Windows NT 4.0 Service Pack 4.0 and Windows NT Server 4.0, Terminal Server Edition Service Pack 4.
Hardware developers writing device drivers under multiple PCI bus systemsmay experience this problem. If your PCI device drivers are configured asdescribed above and you experience this failure when callingHalGetInterruptVector, contact Microsoft Technical Support to obtain ahotfix.

Article ID: 182540 - Last Review: 10/07/2013 21:05:10 - Revision: 2.2

Microsoft Windows NT Server 4.0, Terminal Server Edition, Microsoft Windows NT Server 4.0 Standard Edition, Microsoft Windows NT Workstation 4.0 Developer Edition, Microsoft Windows NT Server 4.0 Enterprise Edition

  • kbnosurvey kbarchive kbhotfixserver kbqfe kbbug kbfix KB182540