Что означает код BSOD 242 (HARDWARE_INTERRUPT_STORM)?

 
Предыдущий Следующий
SCSI_VERIFIER_DETECTED_VIOLATION DISORDERLY_SHUTDOWN

HARDWARE_INTERRUPT_STORM

Проверка ошибок HARDWARE_INTERRUPT_STORM имеет значение 0x000000F2. Это означает, что ядро обнаружило шторм прерываний.

Важно

Эта статья предназначена для программистов. Если при работе с компьютером появился синий экран с кодом HARDWARE_INTERRUPT_STORM, см. Устранение ошибок синего экрана.

Параметры HARDWARE_INTERRUPT_STORM

Параметр Описание
1 Адрес ISR (или первой ISR в цепочке), подключённой к вектору прерывания, вызвавшему шторм
2 Значение контекста ISR
3 Адрес объекта прерывания для вектора, вызвавшего шторм
4 0x1, если ISR не входит в цепочку; 0x2, если ISR входит в цепочку

Причина

Эта проверка ошибки означает, что ядро обнаружило шторм прерываний. Штормом прерываний называется ситуация, когда сигнал прерывания, запускаемого по уровню, остаётся в активном состоянии. Это фатально для системы: она полностью зависает или возникает так называемая блокировка шины.

Такое может произойти по следующим причинам:

  • Оборудование не снимает сигнал прерывания после соответствующей команды драйвера устройства.
  • Драйвер устройства не приказывает оборудованию снять сигнал прерывания, поскольку не считает, что прерывание было инициировано этим оборудованием.
  • Драйвер устройства объявляет прерывание своим, хотя оно не было инициировано его оборудованием. Это возможно только тогда, когда несколько устройств используют один IRQ.
  • Регистр ELCR (edge/level control register) настроен неправильно.
  • Устройства с запуском прерываний по фронту и по уровню используют один IRQ.

Каждая из этих ситуаций немедленно приводит к полному зависанию системы. Вместо полного зависания инициируется эта проверка ошибки, поскольку во многих случаях она позволяет определить виновный компонент.

При возникновении проверки ошибки на экране отображается модуль, содержащий ISR (процедуру обслуживания прерывания) для IRQ, вызвавшего шторм. Ниже приведён пример такого сообщения:

*** 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, что и устройство указанного модуля (в данном примере — IRQ, используемый ACPI).


Нужно найти другой код? Найти другой код состояния или ошибки.