DRIVER_IRQL_NOT_LESS_OR_EQUAL — синий экран Windows¶
DRIVER_IRQL_NOT_LESS_OR_EQUAL — код остановки (BSOD) операционной системы Windows, обозначающий ошибку доступа драйвера устройства к памяти с недопустимым уровнем прерываний (IRQL). Ошибка относится к классу критических сбоев ядра и сопровождается отображением синего экрана смерти с кодом 0x0000000A. Наиболее частая причина — некорректная работа или повреждение системного драйвера, обращающегося к странице памяти, которая в данный момент недоступна или не закреплена в физической памяти.
¶Природа ошибки
Уровень прерываний (IRQL — Interrupt Request Level) в ядре Windows определяет приоритет, на котором выполняется определённый код. Каждому уровню соответствует допустимый набор операций: например, на повышенном IRQL (DISPATCH_LEVEL и выше) запрещено обращение к страницам памяти, которые могут быть выгружены в файл подкачки, так как операция обращения к такой странице потенциально требует переключения контекста, что недопустимо на высоком уровне прерываний.
Когда драйвер обращается к валидному адресу памяти на IRQL, превышающем допустимый для этого типа доступа, ядро Windows фиксирует нарушение и инициирует остановку системы с кодом 0x0A. Механизм является защитой от некорректного программирования драйверов и предотвращает повреждение данных и зависания системы.
¶Основные причины
Наиболее распространённые факторы, приводящие к ошибке:
- Некорректный драйвер устройства. Драйвер обращается к памяти, которая может быть выгружена, либо использует неправильный IRQL при доступе к ресурсам. Это самая частая причина сбоя.
- Повреждённый или устаревший драйвер. После обновления Windows, установки нового оборудования или сбоя при записи на диск драйвер может оказаться несовместим с текущей версией ядра.
- Конфликт драйверов. Одновременная работа двух драйверов, обращающихся к одному и тому же ресурсу, может приводить к гонкам состояний и нарушению требований к IRQL.
- Повреждение системных файлов. Ошибки в файлах ядра или реестра, вызванные сбоем питания, вирусной активностью или некорректным завершением работы, способны приводить к подобным остановкам.
- Проблемы с оборудованием. Дефектная оперативная память, перегрев, неисправный жёсткий диск или SSD, сбой в работе контроллера прерываний — всё это может вызывать ошибку, имитирующую программный сбой.
- Некорректная разгонная конфигурация. Разгон процессора или памяти, не обеспечивающий стабильности на уровне ядра, нередко проявляется именно через DRIVER_IRQL_NOT_LESS_OR_EQUAL.
¶Методы диагностики
Для определения источника сбоя используются встроенные средства Windows:
- Просмотр минидампов. При каждом BSOD система сохраняет минидамп (файл
.dmpв каталогеC:\Windows\Minidump). УтилитыBlueScreenView(NirSoft) илиWinDbgиз состава Windows SDK позволяют определить, какой драйвер или модуль указан в стеке вызовов в момент сбоя. - Просмотр журнала событий. В «Просмотре событий» (Event Viewer) в журнале «Система» фиксируются записи об остановке и перезагрузке, а также сведения о драйвере, вызвавшем сбой.
- Проверка целостности системных файлов. Команда
sfc /scannowвыполняет проверку и восстановление повреждённых системных файлов. Дополнительно используетсяDISM /Online /Cleanup-Image /RestoreHealth. - Тестирование оперативной памяти. Встроенное средство
mdsched.exeили сторонние утилиты (MemTest86) позволяют выявить аппаратные ошибки ОЗУ, которые могут маскироваться под ошибку драйвера.
¶Способы устранения
Основные действия, направленные на устранение ошибки:
- Обновление или переустановка драйверов. Рекомендуется установить актуальные версии драйверов с официальных сайтов производителей оборудования, особенно для сетевых адаптеров, звуковых карт, видеокарт и чипсета.
- Откат проблемного драйвера. Если сбой появился после обновления драйвера, можно откатить его к предыдущей рабочей версии через Диспетчер устройств.
- Удаление недавно установленного программного обеспечения. Некоторые антивирусы, виртуальные машины и утилиты устанавливают собственные драйверы, способные конфликтовать с системой.
- Проверка диска на ошибки. Команда
chkdsk C: /f /rпроверяет файловую систему и поверхность носителя на дефекты. - Возврат системы к точке восстановления. Если ошибка возникла после изменений в системе, откат к ранее сохранённой точке восстановления может устранить проблему без переустановки.
- Проверка температурных режимов и напряжений. Контроль работы системы охлаждения и стабильности напряжений особенно важен при разгоне.
- Чистая установка Windows. В сложных случаях, когда источник сбоя определить не удаётся, помогает полная переустановка операционной системы.
¶Связь с другими ошибками BSOD
DRIVER_IRQL_NOT_LESS_OR_EQUAL входит в группу ошибок ядра, связанных с некорректным обращением к памяти. Рядом с ним по механизму возникновения находятся коды 0x000000D1 (DRIVER_IRQL_NOT_LESS_OR_EQUAL, часто указывающий на конкретный драйвер в имени файла), 0x0000001E (KMODE_EXCEPTION_NOT_HANDLED) и 0x00000050 (PAGE_FAULT_IN_NONPAGED_AREA). Все они указывают на попытку обращения к памяти в условиях, не допускающих такого обращения, и требуют анализа минидампа для точной идентификации источника.
Источники:
- Microsoft Docs — Windows Driver Kit (WDK) documentation: IRQL and memory management
- Microsoft Support — «Bug Check Code Reference»
- NirSoft — BlueScreenView documentation
- Russinovich, Solomon, Ionescu — «Windows Internals» (Microsoft Press)
