Driver irql not less or equal windows server 2012 r2 что делать

Обновлено: 30.06.2024

При появлении критических ошибок операционной системы вылезает так называемый синий экран смерти. Хотя с точки зрения программистов его правильно обозначать как BSOD. Это крайне нежелательное явление для любого пользователя. Причём причин появления синего экрана достаточно много.

Причины ошибки

Рассматриваемая ошибка появляется в виде надписи на синем экране компьютера в ситуации, когда у операционной системы возникают проблемы со стороны драйверов ПО.

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

В действительности потенциальных причин много. К их числу относятся:

  • повреждение или отсутствие системных файлов;
  • конфликт ОС и нового оборудования;
  • повреждение и потеря актуальности драйверов;
  • поломка винчестера (жёсткого диска);
  • воздействие со стороны вирусов;
  • неисправности материнской платы, оперативной памяти и иных компонентов;
  • проблемы со стороны используемого программного обеспечения.

Поскольку причин достаточно много, все они требуют отдельного и более детального рассмотрения.

Ошибка IRQL_NOT_LESS_OR_EQUAL

Системные файлы

Первым делом, столкнувшись с такой ошибкой как IRQL_NOT_LESS_OR_EQUAL, требуется заняться проверкой возможно повреждённых системных файлов.

ВАЖНО. Если ОС Windows в стандартном режиме не запускается, тогда пуск операционной системы нужно осуществлять через LiveCD или же безопасный режим.

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

ВНИМАНИЕ. Чаще всего ошибка IRQL_NOT_LESS_OR_EQUAL появляется именно на компьютерах и ноутбуках с ОС Windows 10 и Windows 8. На более старых ОС преимущественно возникает код 0x000000d1.

В проверке системных файлов на компьютере или ноутбуке нет ничего сложного. Здесь в ход идёт встроенная утилита. Для запуска диагностики необходимо сделать следующее:

Команда sfc /scannow

  • комбинацией клавиш Win и R вызвать командную консоль;
  • в открывшемся поле для ввода прописать команду sfc /scannow;
  • нажать на Enter;
  • дождаться полного завершения диагностики;
  • перезагрузить компьютер.

Пользователю особенно сильно повезёт, если рассматриваемая ошибка будет сопровождаться кодом, указывающий на конкретный повреждённый или проблемный файл. Он может идти с расширением exe или sys. Это указывает на то, что определённые проблемы есть со стороны определённого файла драйвера. Его повреждение и поспособствовало появлению синего экрана смерти. Или просто BSOD.

Драйверы

Довольно часто случается так, что ошибка IRQL_NOT_LESS_OR_EQUAL на дисплее сопровождается конкретным кодом, указывающим на определённый файл в системе. Это хорошо, поскольку так можно быстро отыскать проблемный драйвер.

Для выявления таких файлов удобнее всего использовать утилиту анализа дампа. Она называется BlueScreenView. Именно к её помощи рекомендуется прибегнуть.

Утилита BlueScreenView

Чтобы воспользоваться этой утилитой, требуется, чтобы в ОС была активирована опция для создания дампов. Как только пользователь запустит её, он сразу же увидит проблемные компоненты. Они будут подсвечиваться красным цветом.

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

  • netio.sys и ndis.sys. Отвечает за работу установленной сетевой карты на компьютере. В этой ситуации рекомендуется обновить драйвер. Пользователям ноутбуков нужно посетить официальный сайт изготовителя портативного компьютера. Если это настольный ПК, тогда источником будет производитель материнской платы. А вот стандартный диспетчер устройств для обновления лучше не использовать. При использовании самой последней версии драйвера сетевой карты его всё равно следует переустановить. Но перед этим попробуйте отключить антивирус. Иногда именно он мешает нормальной работе;
  • nvlddmkm.sys. Либо любой иной файл с расширением sys с буквами nv в начале. Это драйвер, связанный с видеокартой. Причём только бренда Nvidia. Тут можно удалить этот драйвер полностью, а затем скачать его с официального сайта и установить заново;
  • atikmdag.sys. Файл относится к видеокартам AMD. Решение аналогичное;
  • strport.sys. Если повреждён этот файл, причину следует искать в подключении через USB или с накопителем. Для начала просто отключите все устройства, исключая лишь клавиатуру и мышь. Проверьте, всё ли в порядке с SSD накопителем, если он используется. Далее сбросьте в BIOS настройки и перезапустите систему;
  • dxgmms2. Ещё один потенциальный виновник с расширением sys, как и все последующие. От него зависит работа видеокарты. Тут рекомендуется переустановить софт для видеокарты, а также отключить аппаратное ускорение, если оно применялось;
  • usbehci. Отвечает за драйвер USB контроллера. Выход один. Переустановить его;
  • cmaudio. Связан со звуковой картой. Драйвер следует сначала удалить, а затем переустановить его;
  • wfplwfs. Чаще всего имеет отношение к антивирусному программному обеспечению. Причём это касается конкретных программ в лице McAfee, Eset и Comodo. Но иногда файл связан с драйверами сетевой карты;
  • tcpip. Из названия понятно, что речь идёт о драйвере протокола TCP/IP. Для исправления ошибки иногда достаточно просто отключить антивирус. Если не помогает, тогда нужно обновить ПО от сетевой карты. Ещё стоит ввести команду «netsh int ip reset» и перезагрузить ПК.
ВАЖНО. Часто все эти ошибки идут параллельно с ntoskrnl.sys, связанной с ядром ОС. Если же при анализе дампа вылезает только этот файл, то тут причина наверняка в самой сборке ОС Windows.

В такой ситуации выхода два. Это переустановка операционки либо установка совершенно новой ОС.

Как только пользователь устранит проблему, связанную с драйвером, синий экран смерти перестанет появляться.

Конфликты оборудования

Также такая проблема как ошибка IRQL_NOT_LESS_OR_EQUAL может появляться по причине конфликта оборудования. То есть пользователь подключает устройство или устанавливает программное обеспечение, являющееся несовместимым с конкретной версией ОС.

Чтобы в этом убедиться, можно изучить спецификации оборудования или ПО либо же отключить его, удалить с компьютера. Если ошибка уйдёт, причина найдена.

Если проблем с совместимостью ОС и оборудования нет, тогда причина неполадок в программном обеспечении, с помощью которого осуществляется работа устройства. Опять же, нужно убедиться, что загруженная или установленная версия ПО соответствует вашей Windows. К примеру, по версии, либо по разрядности.

Проверка битности

Винчестер

Вовсе не исключено, что код остановки в виде IRQL_NOT_LESS_OR_EQUAL появится, если выйдет из строя накопитель. Поломки винчестеров – не редкость, поскольку у них срок службы ограничен. Со временем они начинают постепенно сыпаться, повреждаются сектора, появляются посторонние звуки.

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

Вирусы

Ещё одна причина, из-за которой может появляться код неисправности в виде ошибки IRQL_NOT_LESS_OR_EQUAL, связана с вредоносным программным обеспечением и вирусами.

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

Проверка компьютера на вирусы

Материнская плата

Также синий экран с надписью IRQL_NOT_LESS_OR_EQUAL может появляться, если выйдет из строя материнская плата либо какие-то её отдельные компоненты. Для устранения синего экрана смерти придётся поочерёдно вытащить все планки, переставить в другой разъём, и проверить, поменяется ли поведение компьютера.

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

Программы

Как ни странно, но одна из распространённых причин, почему появляется ошибка IRQL_NOT_LESS_OR_EQUAL на компьютерах с ОС Виндовс, заключается в обычных на вид программах и самом антивирусном софте.

Установленные программы

Чтобы решить проблему, можно попробовать удалить весь софт, который был установлен за последнее время. Если какие-то программы устанавливались буквально перед появлением синего экрана, то тут всё наверняка очевидно. Начните с удаления этого софта.

Дополнительные меры

Есть ещё 2 способа, которые могут помочь.

Пользователям предлагается сделать следующее:

  1. Восстановить систему. Для этого должна быть доступна точка восстановления. Если их несколько, выбирайте ту, которая наиболее свежая, чтобы сильно не откатывать систему назад и не терять ряд полезной и важной информации, сохранённой за последнее время.
  2. Обновить ОС. На многих компьютерах отключена функция автоматического обновления операционной системы. Если ОС давно не получала обновления, это можно сделать вручную. Либо просто активируйте автообновление, чтобы в дальнейшем все свежие пакеты компьютер получал при загрузке ОС.

Такую ошибку как IRQL_NOT_LESS_OR_EQUAL нельзя назвать редким явлением. Но и далеко не всегда она обусловлено какими-то серьёзными и опасными причинами, на устранение которых придётся потратить много ресурсов, включая время и деньги.

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


Данная статья нацелена на тех, кто только недавно начал разрабатывать kernel-драйвера под ОС Windows. В 100-ый раз видишь ненавистную надпись IRQL_NOT_LESS_OR_EQUAL и этот грустный смайлик? Тогда прошу пройти под кат.

Одной из основных ошибок, которую я и сам совершал, является жонглирование IRQL так, как душе угодно, и неполное понимание внутреннего устройства работы приоритетов потоков в ядре Windows.

К примеру, у вас есть кусок кода, который генерирует какое-либо событие по PID-процесса.

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

Уже увидели ошибку в данном фрагменте?

PsLookupProcessByProcessId() – требует соблюдения условия: IRQL <= APC_LEVEL.

Так что, подобный код будет часто выдавать BSOD с кодом ошибки IRQL_NOT_LESS_OR_EQUAL.


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

То есть, переписать код — вот так:

Вот теперь то, всё работает достаточно стабильно. Но, на самом деле это не так. Данный код только хорошо маскирует проблему, снижая шансы её проявления до минимума, но в 1 из 1000 случаев, она всё же всплывёт, а вы будет рвать на себе волосы, пытаясь понять в чём же ошибка.

И тут нужно вспомнить одно из правил написания драйверов, а именно:
«Понижать IRQL можно только в том случае, если вы его собственноручно повышали, и только до его предыдущего значения!»

Если какой-либо код вызвал вашу функцию на IRQL = APC_LEVEL, то вы не имеете права опустить его ниже данного уровня. Вы можете поднять IRQL до DISPATCH_LEVEL, потом опустить обратно до APC_LEVEL, но не ниже.

Таким образом, более приемлемым вариантом кода, будет:

А вспомогательные функции по типу SetIrql() из 2-го примера, в принципе не являются адекватными с точки зрения интерфейса, т.к. при проектировании отдельных методов в вашем драйвере, важно продумывать ограничения накладываемые на предусловия вызова вашей функции.

Для описания данных предусловий, удобно использовать аннотации SAL, их список вы можете посмотреть тут:

Также Microsoft предоставляет небольшой whitepaper(в самом низу статьи) по управлению приоритетами потоков в ядре, и более подробно рассказывает некоторые тонкости по работе с ними:

Если же, вам всё-таки нужно каким-либо образом вызвать какое-либо Api, требующее более низких значений IRQL, то одним из вариантов решения данной проблемы могут стать WorkItem’ы. Но о них, я расскажу уже в другой статье.

Ошибка в Windows

Подобные ошибки могут быть особенно неприятными, когда вы выполняете какую-то важную задачу. Хорошо еще, что компьютер необязательно нести в ремонт, а можно попробовать самостоятельно устранить проблему. Но, прежде чем приступить к исправлениям, вы должны понимать причины возникновения ошибки DRIVER IRQL NOT LESS OR EQUAL.

Почему появляется ошибка «Код остановки: DRIVER IRQL NOT LESS OR EQUAL»?

Как уже указывалось выше, основной причиной ошибки с «синим экраном смерти» являются неисправные драйверы. Эти системные программы запрограммированы для доступа к неправильным аппаратным адресам. Но проблема не ограничивается лишь неисправными драйверами, есть и другие причины, приводящие к «синему экрану смерти». О чем же идет речь?

Другие причины, приводящие к ошибке DRIVER IRQL NOT LESS OR EQUAL или BSOD, включают в себя неправильную установку программного обеспечения, драйверов устройств, поврежденные системные файлы, неисправное оборудование, устаревшую систему Windows и т.д.

Ручные способы обновления системных драйверов для исправления ошибки IRQL NOT LESS OR EQUAL

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

Проверьте наличие обновлений Windows

Чтобы проверить наличие последних обновлений Windows, выполните следующие действия:

1. Перейдите в меню Пуск → Параметры → Обновление и безопасность.

2. В разделе «Обновление и безопасность» выберите Центр обновления Windows → Проверить наличие обновлений.

3. После завершения процесса перезагрузите систему, чтобы применить обновления.

Используйте диспетчер устройств для удаления устаревших драйверов

1. Нажмите Win + R, чтобы открыть окно «Выполнить».

2. Введите devmgmt.msc и нажмите ОК. На кране появится «Диспетчер устройств».

3. Найдите неисправный драйвер, затем щелкните правой кнопкой мыши на имени устройства и выберите «Удалить устройство».

Теперь перезагрузите компьютер, и ваша проблема, вероятно, будет решена.

Исправьте «Код остановки: DRIVER IRQL NOT LESS OR EQUAL», используя Advanced Driver Updater

1. Скачайте Advanced Driver Updater, установите и запустите его.

2. На главном экране вы увидите, являются ли актуальными ваши системные драйверы или они уже устарели.

3. Если драйверы считаются устаревшими, вам необходимо их обновить. Для этого нажмите кнопку «Начать сканирование» на вкладке «Состояние».

4. Начнется сканирование драйверов.

5. После завершения сканирования вы можете нажать «Обновить все», чтобы обновить все устаревшие драйверы.

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

Обновление драйверов устройств – один из лучших способов для исправления «синего экрана смерти» и таких ошибок, как IRQL NOT LESS OR EQUAL. Эта ошибка довольно распространена в Windows, и мы перечислили лучшие возможные варианты ее исправления в нашем пошаговом руководстве. Помогла ли вам эта статья? Быть может, вы знаете какие-то другие способы исправления подобных ошибок? Поделитесь своим опытом и мыслями у нас в комментариях.

Ошибка 0x000000D1

Что значит текст ошибки

Как следует из текста самой ошибки, последняя возникает из-за сбоев в работе какого-либо системного драйвера (обычно это один из драйверов системного ядра kernel), который попытался использовать некорректный адрес памяти для решения своих задач.

В тексте возникшего BSoD может быть указано имя конкретного драйвера-виновника (с расширением «sys»), ставшего причиной ошибки ««DRIVER_IRQL_NOT_LESS_OR_EQUAL», что значительно упрощает решение данной проблемы.

Указанной ошибке и аналогичным 0x00000019: BAD_POOL_HEADER и 0x00000050: PAGE_FAULT_IN_NONPAGED_AREA подвержены практически все современные ОС Виндовс, начиная с Виндовс XP, и заканчивая Виндовс 10.

Картинка мы это починим

Причины ошибки в Windows

Среди причин данной дисфункции я бы выделил следующие:

Экран BSOD

  • Проблемы с драйвером устройства (повреждён, устарел, работает некорректно);
  • Установленные (обычно недавно) в систему программа или аппаратное оборудование функционируют нестабильно;
  • Жёсткий диск осыпается, повреждена его файловая структура;
  • Злокачественное влияние вирусных программ.

Чтобы избавиться от ошибки выполните следующее:

Обновите (удалите, откатите) проблемный драйвер. Если в тексте BSoD указано имя драйвера-виновника с расширением «sys», тогда рекомендуется поискать через поисковую систему, к какому именно устройству (элементу) системы принадлежит данный драйвер (часто это драйвер видеокарты, сетевой карты и др.). И, перейдя в «Диспетчер устройств» (нажимаете на кнопку «Пуск», в строке поиска вводите devmgmt.msc, и нажимаете ввод), обновить, удалить, или откатить данный драйвер.

Откатите проблемный драйвер

К примеру, наиболее проблемные драйвера связаны со следующими устройствами (элементами) системы:

  • athw8x – Atheros Wireless LAN Driver
  • iaStor – Intel Storage drivers
  • igdkmd64 – Intel Graphics driver
  • Netio – Network I/O Subsystem
  • tcpip.sys – Microsoft TCP/IP Driver
  • usbuhci – UHCI USB Miniport Driver.

При этом рекомендуется установить новый драйвер, скачав его прямо с сайта производителя данного устройства (или материнской платы ПК).

Хорошим инструментом обновления системных драйверов до самых свежих версий является использование специальных программ для обновления драйверов (уровня «DriverPack Solution», «Driver Talent», «Driver Easy» и др.), которые в автоматизированном режиме проверят драйвера вашей системы, а затем и обновят их до самой последней конфигурации.

Если конкретный драйвер-виновник не отображается, то можно поискать его через программу-анализатор дампа памяти «BlueScreenView», которая поможет выявить проблемные драйвера, вызывающие появление BSoD.

Программа BlueScreenView

Отключите недавно установленное в систему устройство, или деинсталлируйте недавно установленную программу. Во многих случаях эффективным решением стала деактивация недавно установленного в систему аппаратного или программного элемента. Также можно попробовать поотключать лишнее оборудование для идентификации причины BSoD (обратите внимание на планки памяти, они могут работать некорректно, для чего проверьте их с помощью «MemTest 86»).

  • Проверьте компьютер на наличие вирусных программ. Помогут такие инструменты как «Dr.Web CureIt!», «AdwCleaner», «Kaspersky Virus Removal Tool» и другие аналоги;
  • Используйте утилиту «SFC» для восстановления целостности системных файлов. Запустите командную строку от имени администратора, введите в ней sfc /scannow, нажмите ввод, и дождитесь окончания процесса. Это может помочь решить проблему DRIVER_IRQL_NOT_LESS_OR_EQUAL:0x000000D1 на вашем ПК;
  • Установите официальный патч, если вы пользуетесь Виндовс 7 SP1 и Виндовс Сервер 2008 R2, в случае, если причиной BSoD стали файлы fwpkclnt.sys, netio.sys, tcpip.sys;
  • Временно отключите ваш антивирус. В некоторых случаях, как в случае с антивирусом «AVAST» помогло лишь полное удаление данного продукта с пользовательского ПК;
  • Используйте системное восстановление. Если проблема возникла недавно, используйте откат системы до стабильной точки восстановления. Нажмите на кнопку «Пуск», в строке поиска введите rstrui, и нажмите ввод. Найдите дату, когда система работала корректно, и откатите систему до указанного состояния;

Заключение

Возникновение ошибки DRIVER_IRQL_NOT_LESS_OR_EQUAL обычно связано с каким-либо некорректно работающим драйвером одного из системных устройств. Рекомендуется идентифицировать проблемный драйвер, а затем обновить, удалить, или откатить его, стабилизировав работу системы, и, тем самым, устранить ошибку DRIVER_IRQL_NOT_LESS_OR_EQUAL: 0x000000D1 на вашем ПК.

Читайте также: