错误检查 0xF2:HARDWARE_INTERRUPT_STORM
HARDWARE_INTERRUPT_STORM 错误检查的值为 0x000000F2。 这表示内核检测到了中断风暴。
重要
这篇文章适合程序员阅读。 如果你是在使用计算机时收到蓝屏错误代码的客户,请参阅蓝屏错误疑难解答。
HARDWARE_INTERRUPT_STORM 参数
参数 | 说明 |
---|---|
1 | 连接到风暴中断向量的 ISR(或链中的第一个 ISR)的地址 |
2 | ISR 上下文值 |
3 | 风暴中断向量的中断对象地址 |
4 | 如果 ISR 未链接,则为 0x1;如果 ISR 已链接,则为 0x2 |
原因
此错误检查表示内核已检测到中断风暴。 中断风暴被定义为电平触发的中断信号保持在断言状态。 这对系统造成严重影响,因为系统会硬挂起或“总线锁定”。
发生这种情况的原因如下:
- 一个硬件在被设备驱动程序告知之后不会释放它的中断信号。
- 设备驱动程序不会指示其硬件释放中断信号,因为它不认为中断是从其硬件发起的。
- 即使中断不是从其硬件启动的,设备驱动程序也会声明中断。 请注意,只有当多个设备共享同一 IRQ 时,才会发生这种情况。
- ELCR(边缘电平控制寄存器)设置不正确。
- 边缘和电平中断触发设备共享一个 IRQ。
所有这些情况都会立即硬挂起系统。 不会硬挂起系统,而是启动此错误检查,因为在许多情况下,可以识别罪魁祸首。
当发生错误检查时,屏幕上会显示包含风暴 IRQ 的 ISR(中断服务例程)的模块。 下面是将看到的内容的示例:
*** STOP: 0x000000F2 (0xFCA7C55C, 0x817B9B28, 0x817D2AA0, 0x00000002)
An interrupt storm has caused the system to hang.
*** Address FCA7C55C base at FCA72000, Datestamp 3A72BDEF - ACPI.sys
如果第四个参数是 0x00000001,则指向的模块很可能是罪魁祸首。 驱动程序已损坏,或者硬件出现故障。
如果第四个参数是 0x00000002,则指向的模块是链中的第一个 ISR,并且永远不能保证是罪魁祸首。
解决方法
反复经历此错误检查的用户应尝试通过查找与模块驱动程序所在的 IRQ(在本例中,与 ACPI 使用的 IRQ 相同)位于同一 IRQ 上的设备来隔离问题。