DRIVER IRQL NOT LESS OR EQUAL — распространенная проблема в операционных системах Windows 7, 10, 11. Стандартно она возникает в двух проявлениях: просто вылетает активное окно с ошибкой (реже) и синий экран (чаще). В подавляющем большинстве случаев возникновение проблемы вызывает команду STOP и система перезагружается.
DRIVER_IRQL_NOT_LESS_OR_EQUAL – что это?
В тексте сообщения DRIVER IRQL NOT LESS OR EQUAL скрыты некоторые сведения, которые понятны только системным администраторам. Чтобы понять, что это такое IRQL NOT LESS OR EQUAL, нам нужно расшифровать код. Условно мы можем поделить его на 3 части:
- DRIVER – проблема касается драйверов в системе. Это действительно так в большинстве случаев.
- IRQL – система прерывания запроса или алгоритм приоритизации. То есть сравнение приоритетов для драйверов.
- NOT_LESS_OR_EQUAL – «не меньше или равно». Это означает, что уровень приоритетов проблемного драйвера выше или равен другому процессу, который он пытается прервать. Здесь работает правило – чем ниже уровень, тем выше приоритет. То есть процесс 4 уровня более важен в сравнении с задачей 5 уровня.
Ищем причину ошибки DRIVER_IRQL_NOT_LESS_OR_EQUAL
Несмотря на то, что IRQL NOT LESS OR EQUAL указывает на проблемы драйверов, это далеко не всегда является первопричиной. Сбой драйверов может провоцировать и аппаратная платформа, а затем и саму ошибку.
Основные причины ошибки:
- eстаревший или битый драйвер, многие пользователи сталкиваются именно с этой неисправностью;
- конфликт драйверов после установки оборудования или некоторых программ;
- проблемы при разгоне частот оперативной памяти, видеокарты или процессора;
- поврежденные файлы системы;
- программная неполадка, связанная с некорректными утилитами;
- неисправные комплектующие: обычно HDD или ОЗУ.
Намного более точные результаты можем получить при условии, что проанализируем ошибку DRIVER_IRQL_NOT_LESS_OR_EQUAL с помощью журналов Windows. Если повезет, можем открыть «Просмотр журналов событий» в Windows 10 и посмотреть, на проблему в каком файле ссылается система. Затем останется узнать его причастность к программному обеспечению и исправить ошибку. Более надежный путь – анализ мини-дампов памяти, это делать непросто, но есть палочка-выручалочка – BlueScreenView. Она очень быстро покажет в каком именно файле (или цепочке файлов) проблема.
Способы исправления BSOD
К сожалению, как и большинство других «синих экранов смерти», DRIVER IRQL NOT LESS OR EQUAL в Windows 7, 10, 11 не имеет единственно верного решения. Причин много и способов исправления не меньше. Для компактности мы объединили некоторые исправления в логические блоки.
Работа с драйверами
Ошибка IRQL NOT LESS OR EQUAL может быть спровоцирована практически любым драйвером. Мы видели упоминания о проблемах с драйвером сетевой карты, жесткого диска, периферии, видеокарты. Очень поможет, если в результате исследования ошибки, по инструкции немного выше, будет сужен круг поиска. В остальных ситуациях придется перебирать методы в ручном порядке.
Что делать при ошибке DRIVER IRQL NOT LESS OR EQUAL в Windows 10:
- Отключить кеширование накопителей. Следует открыть «Диспетчер устройств», развернуть список дисковых устройств и перейти в свойства диска. Затем на вкладке «Политика» стоит снять галочку с «Разрешить кэширование записей для этого устройства».
- Переустановить драйвера для сетевого адаптера. Следует попробовать удалить и установить повторно драйвер для Ethernet-карты, а также для Wi-Fi-модуля. Обычно его можем найти на сайте производителя ноутбука или самого оборудования.
- Установить новый драйвер для «Дисковых устройств». Известны случаи, когда BSOD появляется только при работе с SSD, а с HDD работает стабильно. Нужно понаблюдать за поведением системы и установить соответствующий драйвер.
- Отключить всю периферию и воспроизвести условия, в которых появляется синий экран. Если ничего в этот раз не будет, подключаем оборудование по одному, таким образом вычисляя виновника.
- Полностью удалить и установить новый драйвер Nvidia. Для этого рекомендуем использовать утилиту DDU, она подчищает все следы старого ПО. Загрузить новый драйвер можем с официального сайта.
Читайте также: Как обновить драйвера видеокарты?
Использовать диагностику памяти
Очень часто IRQL NOT LESS OR EQUAL становится следствием проблем с оперативной памятью. Сперва рекомендуем провести процедуру первичной диагностики самостоятельно: проверить качество фиксации планок (есть случаи, когда ошибка появлялась из-за того, что планка не застегнута до конца) и попробовать запустить ПК только с одним модулем памяти. Таким образом следует проверить каждую планку ОЗУ.
Следующий этап – просканировать оперативную память с помощью MemTest86. Программа умеет находить ошибки ОЗУ и исправлять некоторые из них.
Неполадка при разгоне
К сожалению, разгон тактовых частот оборудования – потенциально опасная технология, которая нарушает стабильность работы системы. Он может приводить и к BSOD DRIVER_IRQL_NOT_LESS_OR_EQUAL в Windows 10.
Что нужно сделать:
- Отключить XMP (Nvidia) или DOCP-профили (AMD) памяти. На форумах советуют отключить эту технологию, так как она может вызывать синий экран. По крайней мере для теста, это сделать следует. Нужно перейти в BIOS и в одном из разделов, может называть DRAM Settings или несколько иначе, найти Extreme Memory Profile (X.M.P). Остается только перевести его в положение Disable.
- Улучшить охлаждение. Таким образом мы исключим вероятность перегрева.
- Удалить ASUS AI Suite. Утилита нужна для контроля параметров работы системы и считывания значений с датчиков. Известны случаи, когда программа вызывает BSOD.
- Вернуть частоты компьютера к заводским настройкам. Никто не гарантирует, что оборудование будет работать стабильно на повышенных частотах. Да и разные комплектующие имеют свой предел. Если система некорректно функционирует, разумно вернуть ее к штатным параметрам.
Дополнительные решения
Также нам известна серия не совсем стандартных способов исправления ошибки DRIVER IRQL NOT LESS OR EQUAL, которые на не позволяет совесть утаить от вас, хотя они и выбиваются из общего ряда.
Как еще можно исправить ошибку DRIVER IRQL NOT LESS OR EQUAL:
- Удалить SoftEther VPN, Zone Alarm, HWiNFO. По неизвестным причинам, эти программы склонны вызывать данную ошибку. Следует их убрать с компьютера и проверить результат. Если проблема в них, можно найти аналог, например, вот список лучших бесплатных VPN для Windows 10.
- Восстановить системные файлы. В Windows существует специальная утилита для проверки целостности и работает в автоматическом режиме. Она не только поможет найти проблему, но и устранит её, если такая возможность есть. Просто нужно нажать Win + R, ввести cmd и кликнуть по кнопке Ок. Затем следует вставить sfc /scannow и дождаться окончания процедуры. После процедуры вы увидите отчет о том, найдены ли проблемы и удалось ли их устранить.
- Восстановить систему. В поиск нужно ввести «Восстановление системы», после выбрать нужную точку. Действие автоматическое, но от вас могут потребоваться некоторый выбор, просто следуйте инструкции.
Если у Вас остались вопросы по теме «Как исправить ошибку DRIVER IRQL NOT LESS OR EQUAL?», то можете задать их в комментариях
Андрей
Системный администратор
Задать вопрос
Отображается ошибка DRIVER IRQL NOT LESS OR EQUAL Windows 10, что делать?
Инструкция по Windows 7 остается актуальной и для «десятки». Если по шагам, что делать при ошибке DRIVER IRQL NOT LESS OR EQUAL Windows 10: обновляем драйвера для графической карты, чистим реестр любой удобной утилитой, к примеру, CCleaner и сканируем систему утилитой sfc /scannow. В случае безрезультатного выполнения процедур можем отключить антивирус, отключить всю второстепенную периферию и запустить диагностику оперативной памяти через BIOS. Если в безопасном режиме все работает, может помочь откат системы.
driver irql not less or equal Windows 8, как убрать?
Ошибка DRIVER IRQL NOT LESS OR EQUAL в Windows 8 обычно вызвана проблемами с драйверами. Рекомендуем проверить не только исправность графического драйвера, но и остальных. Чтобы быстро обновить все доступное ПО, лучше использовать утилиты вроде Driver Pack Solution. Если не помогает, стоит почистить реестр с помощью CCleaner и запустить сканирование системных файлов командой sfc /scannow. Ее можно вставить в консоль.
Синий экран смерти, или BSOD (Blue Screen Of Death) – это ошибка, отображаемая на экране компьютера, когда с ним случилось нечто фатальное. Если на экране Windows 10 появляется сплошной синий фон с сообщением об ошибке «Код остановки: DRIVER IRQL NOT LESS OR EQUAL», то это может свидетельствовать о проблеме с системными драйверами.
♥ ПО ТЕМЕ: Зависает компьютер на Windows? Горячие клавиши, которые помогут решить проблему.
Подобные ошибки могут быть особенно неприятными, когда вы выполняете какую-то важную задачу. Хорошо еще, что компьютер необязательно нести в ремонт, а можно попробовать самостоятельно устранить проблему. Но, прежде чем приступить к исправлениям, вы должны понимать причины возникновения ошибки DRIVER IRQL NOT LESS OR EQUAL.
♥ ПО ТЕМЕ: Как отключить пароль на вход в Windows 10: рабочие способы.
Как уже указывалось выше, основной причиной ошибки с «синим экраном смерти» являются неисправные драйверы. Эти системные программы запрограммированы для доступа к неправильным аппаратным адресам. Но проблема не ограничивается лишь неисправными драйверами, есть и другие причины, приводящие к «синему экрану смерти». О чем же идет речь?
Другие причины, приводящие к ошибке DRIVER IRQL NOT LESS OR EQUAL или BSOD, включают в себя неправильную установку программного обеспечения, драйверов устройств, поврежденные системные файлы, неисправное оборудование, устаревшую систему Windows и т.д.
♥ ПО ТЕМЕ: iCloud на компьютере, или как загружать фото, видео из облака на Windows и обратно.
Как исправить ошибку «Код остановки: DRIVER IRQL NOT LESS OR EQUAL» в Windows?
Есть много способов исправить эту ошибку, приводящую к появлению «синего экрана смерти». Первый и самый главный шаг заключается в устранении проблемы путем обновления устаревших, неправильных и неисправных драйверов. Для этого вам необходимо установить обновленные или новые драйверы для вашей системы. Это можно быстро сделать с помощью ручных манипуляций с настройками системы или с помощью эффективного инструмента, такого, как Advanced Driver Updater. Он поможет вам исправить проблемы с производительностью вашей системы, вызванные устаревшими драйверами.
♥ ПО ТЕМЕ: Как установить видеозаставки с Apple TV на Windows и Mac.
Ручные способы обновления системных драйверов для исправления ошибки IRQL NOT LESS OR EQUAL
Так как ошибка IRQL_NOT_LESS_OR_EQUAL означает, что что-то не так с любым из ваших системных драйверов, памятью устройства или антивирусным программным обеспечением на вашем устройстве. Вот способ, который вы можете попробовать:
Проверьте наличие обновлений Windows
Чтобы проверить наличие последних обновлений Windows, выполните следующие действия:
1. Перейдите в меню Пуск → Параметры → Обновление и безопасность.
2. В разделе «Обновление и безопасность» выберите Центр обновления Windows → Проверить наличие обновлений.
3. После завершения процесса перезагрузите систему, чтобы применить обновления.
♥ ПО ТЕМЕ: Как сделать Windows 10 похожей на Windows 7.
Используйте диспетчер устройств для удаления устаревших драйверов
Всегда лучше устранять корень проблемы, а в нашем случае вам необходимо будет удалить устаревшие и поврежденные драйверы для исправления ошибки IRQL NOT LESS OR EQUAL в Windows 10. В большинстве случаев устаревшие и неизвестные драйверы будут отмечены желтым значок перед ними. Итак, вот как исправить проблему с драйверами:
1. Нажмите Win + R, чтобы открыть окно «Выполнить».
2. Введите devmgmt.msc и нажмите ОК. На кране появится «Диспетчер устройств».
3. Найдите неисправный драйвер, затем щелкните правой кнопкой мыши на имени устройства и выберите «Удалить устройство».
Теперь перезагрузите компьютер, и ваша проблема, вероятно, будет решена.
♥ ПО ТЕМЕ: Как настроить Windows, чтобы извлекать USB-флешки и накопители без использования «Безопасного извлечения».
Исправьте «Код остановки: DRIVER IRQL NOT LESS OR EQUAL», используя Advanced Driver Updater
1. Скачайте Advanced Driver Updater, установите и запустите его.
2. На главном экране вы увидите, являются ли актуальными ваши системные драйверы или они уже устарели.
3. Если драйверы считаются устаревшими, вам необходимо их обновить. Для этого нажмите кнопку «Начать сканирование» на вкладке «Состояние».
4. Начнется сканирование драйверов.
5. После завершения сканирования вы можете нажать «Обновить все», чтобы обновить все устаревшие драйверы.
6. После того, как процесс будет завершен, вам необходимо перезагрузить компьютер для применения необходимых изменений. Вы снова можете поискать устаревшие драйверы с помощью описанного выше процесса. С большой вероятностью это в итоге решит проблему.
♥ ПО ТЕМЕ: 32- или 64-битная Windows: какая разница и какую систему нужно устанавливать?
Исправить ошибку «Код остановки: DRIVER IRQL NOT LESS OR EQUAL» с помощью восстановления системы
Помимо обновления драйверов, вы также можете исправить ошибку «Код остановки: DRIVER IRQL NOT LESS OR EQUAL» в Windows 10, выполнив «Восстановление системы». Это последний вариант, в котором пользователь с помощью нескольких простых шагов может исправить ошибку с таким кодом. Для этого нажмите Win + R и откройте окно «Выполнить» и введите там rstrui.exe, после чего нажмите OK. Теперь нажмите «Далее» и выберите точку восстановления, созданную перед установкой. Снова нажмите на кнопку «Далее», чтобы восстановить систему к состоянию на выбранную дату и время. Следуйте дальнейшим инструкциям, чтобы завершить процесс восстановления. Перезагрузите компьютер и проверьте, решена ли проблема или нет.
♥ ПО ТЕМЕ: Как ускорить Windows 10, 8 или 7, отключив ненужные службы операционной системы.
Какой вариант помог вам исправить ошибку «Код остановки: DRIVER IRQL NOT LESS OR EQUAL»?
Обновление драйверов устройств – один из лучших способов для исправления «синего экрана смерти» и таких ошибок, как IRQL NOT LESS OR EQUAL. Эта ошибка довольно распространена в Windows, и мы перечислили лучшие возможные варианты ее исправления в нашем пошаговом руководстве. Помогла ли вам эта статья? Быть может, вы знаете какие-то другие способы исправления подобных ошибок? Поделитесь своим опытом и мыслями у нас в комментариях.
Смотрите также:
- Лучшие «облака» без регистрации, или как удобно передавать файлы между iPhone, Android, Mac и Windows.
- Как автоматически переключать язык (раскладку) на клавиатуре в macOS или Windows.
- VK Messenger: Программа Вконтакте (ВК) для компьютера Windows, Mac, Linux.
Всем здравия!
Сегодня сугубо узкая тема, посвященная одной популярной ошибке низкого уровня (ее стоп-код приведен в заголовке темы и на скрине ниже). Коварна она тем, что при ее появл. вы не можете работать с устройством, приходится перезагружать машину и терять все не сохраненные данные.
Чтобы не тратить впустую время на предисловия — сразу перейду к сути… 🙂
*
Что написано на фото ниже (прим.: экран с описанием ошибки появл. на английском):
На вашем ПК возникла проблема, и его необходимо перезагрузить. Мы собираем некоторую информацию об ошибках, а затем мы перезагрузим устройство.
25% завершено
Для получения дополнительной информации об этой ошибке и возможных способах ее исправления — посетите: http://windows.com/stopcode
Если вы звоните в службу поддержки, сообщите им следующую информацию:
Код остановки: IRQL_NOT_LESS_OR_EQUAL
Как выглядит ошибка на практике, стоп-код — «irql not less or equal» (пример)
*
Содержание статьи
- 1 С чего начать исправление ошибки
- 1.1 Вероятные причины (список)
- 1.2 ШАГ 1
- 1.3 ШАГ 2
- 1.4 ШАГ 3
- 1.5 ШАГ 4
- 1.6 ШАГ 5
→ Задать вопрос | дополнить
С чего начать исправление ошибки
Вероятные причины (список)
- Неисправные или не совместимые компоненты ПК (в т.ч. и внешнее оборудование: мышь/клавиатура, принтер и пр.). Например, проблема часто возникает при подкл. видеокарты, которая не поддерживается мат. платой. Также нередко «виновниками» явл. сетевые карты (Wi-Fi адаптеры, скажем), накопители NVMe, контролеры USB;
- использование «нового» железа и «старой» ОС (такое часто бывает, когда на современный ноутбук, например, пользователи хотят установить Windows 7/8). В этом случае было бы разумно посмотреть на офиц. сайте 📌производителя вашего ноутбука (мат. платы) поддерживаемые версии ОС, наличие драйверов — а уже затем из этого списка выбирать ОС;
- установка некорректных/неподходящих драйверов устройств. В идеале, конечно, устанавливать именно ту версию ОС, для которой на офиц. сайте производителя есть драйвера для вашего устройства.
- неправильная установка прикладного ПО. Если вы заметили, что сбои начались после установки какой-либо программы — попробуйте ее 📌удалить начисто из системы, а затем выбрать др. версию этого ПО и произвести установку заново (как рекомендовано разработчиком). Возможно, для диагностики вам потребуется установить 📌вторую «чистую» копию Windows;
- поврежденные системные файлы ОС. Если у вас в системе есть контрольные точки на ту дату, когда ПК стабильно работал — есть смысл 📌откатить систему к ним (как вариант для диагностики: можно попробовать установить 📌вторую «чистую» копию Windows, как уже советовал выше // либо воспользоваться 📌LiveCD).
*
ШАГ 1
Итак…
👉 Пожалуй первое, что я бы посоветовал, — попробовать вспомнить «когда» и «после чего» начала появляться ошибка.
Дело в том, что во многих случаях виновником (как сказал выше) явл. «новый» драйвер, программа (игра), подключенное устройство и т.д. Разумеется, если вы вспомнили возможного «виновника» — попробуйте его удалить/извлечь/отсоединить и т.д.
👉 Если эта ошибка возникла на новом ПК (при самост. сборке) — попробуйте от него отключить «всё» лишнее, оставив только 📌основные компоненты: мат. плата, ЦП, 1 плашка ОЗУ, видеокарта, БП… (в т.ч. отключите диски, а для диагностики используйте 📌LiveCD-флешку с заведомо корректной ОС). 👇
Запускаем OCCT, загрузившись с LiveCD (проверка и диагностика устройства. Смотрим температуры и стабильность работы ПК под нагрузкой).
*
ШАГ 2
В Windows можно провести самодиагностику и исправление ряда системных файлов (скажем, ndis.sys, nvlddmkm.sys, ntoskrnl.exe и др.).
Чтобы запустить подобную процедуру — откройте 📌командную строку от имени администратора, и используйте команду:
sfc /scannow
Обращаю внимание, что эта операция не затрагивает пользовательские данные (т.е. документы, фото, видео и пр. — никуда пропасть не должны…).
Начато сканирование системы. Этот процесс может занять некоторое время
Если все прошло корректно — вы должна увидеть сообщение, что нарушения целостности файлов не были обнаружены (либо были исправлены). См. пример ниже. 👇
Защита ресурсов Windows не обнаружила нарушений целостности
*
ШАГ 3
Попробуйте посмотреть журнал обновлений Windows — если накануне (перед появл. ошибки) ОС обновилась — сделайте откат, удалив это последнее обновление. Кстати, желательно на время диагностики отключить авто-обновление. Ссылочка ниже в помощь. 👇
📌 В помощь!
Как отключить обновления в Windows 10/11 (они устанавливаются самостоятельно при перезагрузке компьютера) — https://ocomp.info/kak-otklyuchit-obnovlenie-v-win-10.html
Центр обновления Windows 11 — журнал, остановка
👉 Кроме этого, я бы вам посоветовал попробовать найти офиц. драйвера на мат. плату (чипсет), видеокарту, сетевые адаптеры, и пр., и переустановить их (прим.: новые ОС Windows 8/10/11 при инсталляции обычно всегда устанавливают их автоматически, но далеко не всегда они работают корректно).
Несколько упростить поиск драйверов помогает утилита 📌Driver Booster (она, кстати, проверяет не только драйверы, но и все необходимые библиотеки: DirectX, Visual C++, NET FrameWork и пр.).
Обновить всё — игровые компоненты, звуковые и игровые устройства и пр. / Driver Booster
*
ШАГ 4
Также порекомендовал бы воспользоваться спец. утилитой: 📌 BlueScreenView (ссылка на офиц. сайт) — она позволяет посмотреть все последние критические ошибки и коды к ним (в ряде случае указывает даже файл, из-за которого произошла остановка…). Иногда это очень здорово помогает в диагностике!
Коды ошибок (и расшифровку к ним) можно найти на сайте: https://bsodstop.ru/kod-bsod/
BlueScreenView — скрин окна утилиты
Причина, решение
*
ШАГ 5
Если все предыдущие шаги не увенчались успехом, и вы так и не нашли «виновника» — попробуйте ознакомиться с общими рекомендациями при появл. синего экрана. Ссылочка ниже в помощь.
📌 В помощь!
Синий экран в Windows 10/11: «На вашем ПК возникла проблема…» (а за ним перезагрузка компьютера) — https://ocomp.info/siniy-ekran-win10.html
*
Иные советы и личный опыт — приветствуются в комментариях ниже. Заранее мерси!
Удачи!
👋
Полезный софт:
- Видео-Монтаж
Отличное ПО для создания своих первых видеороликов (все действия идут по шагам!).
Видео сделает даже новичок!
- Ускоритель компьютера
Программа для очистки Windows от «мусора» (удаляет временные файлы, ускоряет систему, оптимизирует реестр).
Windows 10 содержит большое количество сообщений об ошибках, а DRIVER_IRQL_NOT_LESS_OR_EQUAL ошибка — одна из них.
Если вы столкнулись с этим кодом остановки, вот что делать.
Ошибка DRIVER_IRQL_NOT_LESS_OR_EQUAL относится к вашим системным драйверам и содержит код остановки. 0x000000D1. Ошибка указывает, что «драйвер режима ядра попытался получить доступ к выгружаемой памяти, в то время как IRQL процесса был слишком высоким».
Разбивая это загадочное сообщение, ошибка возникает из-за проблемы связи между вашим оборудованием и процессором.
Когда ваше оборудование хочет сообщить процессору о том, что что-то должно произойти, оно прерывает работу. Если слишком много битов оборудования пытаются обмениваться данными одновременно, или, скорее, где-то есть неправильная конфигурация, уровень запроса прерывания (IRQL) повышается.
В этом случае часть оборудования пытается получить доступ к части вашей системной памяти, к которой у него нет доступа, потому что ЦП обрабатывает другие вещи. Драйверы помогают аппаратной связи, позволяя графическому процессору взаимодействовать с процессором и т. Д. Если драйвер пытается получить доступ к адресу памяти, к которому у него нет надлежащего доступа, это может привести к сбою вашей системы.
Один из наиболее распространенных драйверов, связанных с ошибкой 0x000000D1, — это сетевой драйвер, в частности системный файл. ndis.sys, который вы можете увидеть в упомянутой ссылке на сбой на синем экране смерти.
Как исправить ошибку DRIVER_IRQL_NOT_LESS_OR_EQUAL
Поскольку ошибка DRIVER_IRQL_NOT_LESS_OR_EQUAL относится к вашим системным драйверам, доступно несколько простых исправлений.
1. Проверьте наличие обновлений
Это кажется очевидным, но вы должны проверить наличие незавершенных обновлений. В предстоящем обновлении может быть исправление ошибки, связанной с вашим неисправным драйвером, и установка обновления может исправить все.
Ударил Клавиша Windows + I , чтобы открыть панель настроек. Теперь отправляйтесь в Обновление и безопасность, затем проверьте под Центр обновления Windows для любых ожидающих обновлений. Если есть обновление, сохраните все важные файлы, затем нажмите Перезагрузить сейчас. Ваша система перезагрузится во время процесса.
2. Обновите системные драйверы.
Windows 10 позаботится об обновлениях драйверов, но это не значит, что случайный драйвер не ускользнет из сети. Это также не останавливает повреждение драйвера, когда драйвер со временем становится неисправным или поврежденным. Сбои драйверов в Windows 10 встречаются реже, чем в более старых версиях Windows, но они все равно случаются.
Если вы хотите просмотреть последние обновления драйверов, нажмите Клавиша Windows + I чтобы открыть панель настроек, затем выберите Обновление и безопасность> Просмотр истории обновлений. Здесь вы можете найти любой драйвер, который нуждается в обновлении.
Если на странице истории обновлений драйверов ничего не отображается, пора проверить диспетчер устройств. Тип Диспетчер устройств в строке поиска меню «Пуск» и выберите «Лучшее совпадение». Проверьте список на наличие желтых индикаторов ошибок. Если таковых нет, маловероятно, что причиной проблемы является драйвер.
Однако, поскольку DRIVER_IRQL_NOT_LESS_OR_EQUAL часто относится к системному файлу ndis.sys, вы должны вручную обновить драйвер сетевого адаптера.
Разверните Сетевой адаптер раздел, щелкните правой кнопкой мыши драйвер адаптера Wi-Fi или адаптера Ethernet (или обоих) и выберите Обновить драйвер. Теперь выберите Автоматический поиск обновленного программного обеспечения драйвера, и Windows автоматизирует этот процесс.
Раздел сетевых адаптеров в вашем диспетчере устройств, вероятно, не будет выглядеть так загруженно, как у меня, поэтому будет относительно легко определить, какой адаптер выбрать.
3. Чистая установка сетевого драйвера.
Если обновление Windows 10 не работает и не удается обновить драйвер, вы всегда можете выбрать чистую установку драйвера. Это означает, что вы удаляете драйвер из своей системы, а затем устанавливаете последнюю версию без помощи Windows.
Поскольку это относится к вашим сетевым адаптерам, вам необходимо заранее загрузить правильный драйвер, поскольку после удаления драйвера сетевого адаптера ваше интернет-соединение может перестать работать.
Вернитесь в диспетчер устройств и разверните Сетевой адаптер раздел. Теперь скопируйте и вставьте имя драйвера в поисковую систему в Интернете. Например, я бы запустил поиск по запросу «Контроллер семейства Realtek pcie gbe», чтобы найти последние версии драйверов для моего адаптера Ethernet.
Найдите и загрузите последнюю версию сетевого адаптера, доступную для вашего оборудования. Большинство драйверов поставляются с файлом автоматической установки с именем setup.exe, который вы найдете где-нибудь в загруженных файлах драйверов.
После загрузки правильных драйверов сетевого адаптера вы можете продолжить и удалить существующий драйвер сетевого адаптера. В диспетчере устройств щелкните правой кнопкой мыши существующий драйвер сетевого адаптера и выберите Удалить. Следуйте инструкциям на экране.
После завершения удаления драйвера найдите новый драйвер сетевого адаптера и запустите программу установки, снова следуя инструкциям на экране. После завершения установки перезагрузите компьютер.
4. Запустите SFC и CHKDSK.
Windows 10 включает в себя несколько интегрированных системных инструментов, которые исправят неисправные файловые системы. Если обновление и замена драйвера не работают, это может быть поврежденный файл в другом месте вашей системы. Ошибка DRIVER_IRQL_NOT_LESS_OR_EQUAL может относиться к вашему файлу подкачки, который является типом виртуальной системной памяти. Запуск SFC и CHKDSK может исправить любые повреждения, связанные с файлом подкачки.
Проверка системных файлов Windows (SFC) исправляет ошибки, связанные с системными файлами Windows, автоматически сканируя и исправляя ошибки.
Перед запуском команды SFC важно убедиться, что она работает правильно. Для этого мы используем инструмент обслуживания образов развертывания и управления ими, или DISM.
Как и SFC, DISM — это интегрированная утилита Windows с широким набором функций. В этом случае команда DISM Restorehealth гарантирует, что наше следующее исправление будет работать правильно.
Выполните следующие шаги.
-
Тип Командная строка (администратор) в строке поиска меню Пуск, затем щелкните правой кнопкой мыши и выберите Запустить от имени администратора , чтобы открыть командную строку с повышенными привилегиями.
-
Введите следующую команду и нажмите Enter: DISM / онлайн / очистка-образ / восстановление здоровья
-
Подождите, пока команда завершится. В зависимости от состояния вашей системы процесс может занять до 20 минут. Иногда кажется, что процесс застревает, но дождитесь его завершения.
-
Когда процесс завершится, введите sfc / scannow и нажмите Enter.
CHKDSK — еще один системный инструмент Windows, который проверяет структуру файлов. В отличие от SFC, CHKDSK сканирует весь ваш диск на наличие ошибок, тогда как SFC сканирует ваши системные файлы Windows в частности. Как и SFC, запустите сканирование CHKDSK из командной строки, чтобы исправить вашу машину.
-
Тип командная строка в строке поиска меню Пуск, затем щелкните правой кнопкой мыши наиболее подходящий вариант и выберите Запустить от имени администратора. (Или нажмите Клавиша Windows + X, затем выберите Командная строка (администратор) из меню.)
-
Затем введите chkdsk / r и нажмите Enter. Команда просканирует вашу систему на наличие ошибок и исправит любые проблемы в процессе.
Устранение ошибки 0x000000D1 в Windows 10
Одно из этих исправлений устранит ошибку 0x000000D1. Хотя ошибка DRIVER_IRQL_NOT_LESS_OR_EQUAL вызывает разочарование, ее нетрудно удалить из вашей системы. Выполняйте шаги один за другим, и ваша система будет в кратчайшие сроки восстановлена и нормально работает.
Важно помнить, что перед удалением старых необходимо загрузить новые драйверы сетевого адаптера. Если вы сделаете это неправильно, например, сначала удалите драйвер, у вас могут возникнуть проблемы с загрузкой нового драйвера сетевого адаптера, особенно если у вас нет доступного устройства резервного копирования.
Время на прочтение
4 мин
Количество просмотров 5.3K
Данная статья нацелена на тех, кто только недавно начал разрабатывать kernel-драйвера под ОС Windows. В 100-ый раз видишь ненавистную надпись IRQL_NOT_LESS_OR_EQUAL и этот грустный смайлик? Тогда прошу пройти под кат.
Одной из основных ошибок, которую я и сам совершал, является жонглирование IRQL так, как душе угодно, и неполное понимание внутреннего устройства работы приоритетов потоков в ядре Windows.
К примеру, у вас есть кусок кода, который генерирует какое-либо событие по PID-процесса.
KSPIN_LOCK SharedDataLock;
NTSTATUS SomeFunction(_In_ HANDLE ProcessId)
{
KIRQL OriginalIrql;
NTSTATUS status = STATUS_UNSUCCESSFUL;
// lock shared data access
KeAcquireSpinLock(&SharedDataLock, &OriginalIrql);
// some code, which works with shared data
PVOID data = GetProcessSharedData(ProcessId);
NT_ASSERT("GetProcessSharedData() must always return shared data.", data);
PEPROCESS Process = NULL;
// next we need to get process image name
status = PsLookupProcessByProcessId(
ProcessId,
&Process
);
if ( !NT_SUCCESS( status ) )
{
goto LOCK_RELEASE;
}
PUNICODE_STRING ProcessImage = NULL;
status = GetProcessImagename(Process, &ProcessImage);
if ( !NT_SUCCESS( status ) )
{
goto PROCESS_LINK_DEREF;
}
// generate some event for our log
GenerateEvent( ProcessImage, data );
PROCESS_LINK_DEREF:
ObDereferenceObject(Process);
LOCK_RELEASE: // release lock
KeReleaseSpinLock(&SharedDataLock, OriginalIrql);
return status;
}
Внутри данного кода, используются разделяемые данные, синхронизация которых, обеспечивается спинлоком. Также нам нужно получить имя процесса, чтобы залогировать событие.
Уже увидели ошибку в данном фрагменте?
PsLookupProcessByProcessId()
– требует соблюдения условия: IRQL <= APC_LEVEL.
Так что, подобный код будет часто выдавать BSOD с кодом ошибки IRQL_NOT_LESS_OR_EQUAL.
И вот дальше, начинается самое интересное. Первое решение, которое придёт в голову новичкам, будет менять уровень IRQL перед вызовом данной функции так, чтобы условие соблюдалось.
То есть, переписать код — вот так:
KSPIN_LOCK SharedDataLock;
VOID SetIrql(_In_ KIRQL Irql)
{
if ( KeGetCurrentIrql() > Irql )
KeLowerIrql(Irql);
else if ( KeGetCurrentIrql() < Irql )
KzRaiseIrql(Irql);
}
NTSTATUS SomeFunction(_In_ HANDLE ProcessId)
{
KIRQL OriginalIrql;
NTSTATUS status = STATUS_UNSUCCESSFUL;
// lock shared data access
KeAcquireSpinLock(&SharedDataLock, &OriginalIrql);
// some code, which works with shared data
PVOID data = GetProcessSharedData(ProcessId);
NT_ASSERT("GetProcessSharedData() must always return shared data.", data);
SetIrql(APC_LEVEL);
PEPROCESS Process = NULL;
// next we need to get process image name
status = PsLookupProcessByProcessId(
ProcessId,
&Process
);
SetIrql(DISPATCH_LEVEL);
if ( !NT_SUCCESS( status ) )
{
goto LOCK_RELEASE;
}
PUNICODE_STRING ProcessImage = NULL;
status = GetProcessImagename(Process, &ProcessImage);
if ( !NT_SUCCESS( status ) )
{
goto PROCESS_LINK_DEREF;
}
// generate some event for our log
GenerateEvent( ProcessImage, data );
PROCESS_LINK_DEREF:
ObDereferenceObject(Process);
LOCK_RELEASE:
// release lock
KeReleaseSpinLock(&SharedDataLock, OriginalIrql);
return status;
}
Вот теперь то, всё работает достаточно стабильно. Но, на самом деле это не так. Данный код только хорошо маскирует проблему, снижая шансы её проявления до минимума, но в 1 из 1000 случаев, она всё же всплывёт, а вы будет рвать на себе волосы, пытаясь понять в чём же ошибка.
И тут нужно вспомнить одно из правил написания драйверов, а именно:
«Понижать IRQL можно только в том случае, если вы его собственноручно повышали, и только до его предыдущего значения!»
Для примера:
Если какой-либо код вызвал вашу функцию на IRQL = APC_LEVEL, то вы не имеете права опустить его ниже данного уровня. Вы можете поднять IRQL до DISPATCH_LEVEL, потом опустить обратно до APC_LEVEL, но не ниже.
Таким образом, более приемлемым вариантом кода, будет:
KSPIN_LOCK SharedDataLock;
_IRQL_requires_max_(APC_LEVEL)
NTSTATUS SomeFunction(_In_ HANDLE ProcessId)
{
NTSTATUS status = STATUS_UNSUCCESSFUL;
PEPROCESS Process = NULL;
// next we need to get process image name
status = PsLookupProcessByProcessId(
ProcessId,
&Process
);
if ( !NT_SUCCESS( status ) )
{
goto EXIT_ROUTINE;
}
PUNICODE_STRING ProcessImage = NULL;
status = GetProcessImagename(Process, &ProcessImage);
if ( !NT_SUCCESS( status ) )
{
goto PROCESS_LINK_DEREF;
}
// lock shared data access
KeAcquireSpinLock(&SharedDataLock, &OriginalIrql);
// some code, which works with shared data
PVOID data = GetProcessSharedData(ProcessId);
NT_ASSERT("GetProcessSharedData() must always return shared data.", data);
// generate some event for our log
GenerateEvent( ProcessImage, data );
// release lock
KeReleaseSpinLock(&SharedDataLock, OriginalIrql);
PROCESS_LINK_DEREF:
ObDereferenceObject(Process);
EXIT_ROUTINE:
return status;
}
А вспомогательные функции по типу SetIrql() из 2-го примера, в принципе не являются адекватными с точки зрения интерфейса, т.к. при проектировании отдельных методов в вашем драйвере, важно продумывать ограничения накладываемые на предусловия вызова вашей функции.
Для описания данных предусловий, удобно использовать аннотации SAL, их список вы можете посмотреть тут:
MSDN SAL 2.0
Также Microsoft предоставляет небольшой whitepaper(в самом низу статьи) по управлению приоритетами потоков в ядре, и более подробно рассказывает некоторые тонкости по работе с ними:
MSDN Managing Hardware Priorities
Если же, вам всё-таки нужно каким-либо образом вызвать какое-либо Api, требующее более низких значений IRQL, то одним из вариантов решения данной проблемы могут стать WorkItem’ы. Но о них, я расскажу уже в другой статье.