Содержание
- What is IRQL_NOT_LESS_OR_EQUAL Error in Windows 10?
- IRQL_NOT_LESS_OR_EQUAL Error
- Major Causes of IRQL_NOT_LESS_OR_EQUAL Error
- How To Fix IRQL_NOT_LESS_OR_EQUAL Error in Windows 10?
- На вашем ПК возникла проблема. Синий экран. Как исправить!
- Как исправить Синий экран с разными ошибками (ntoskrnl.exe)
- Lost Data Due To BSOD Error? Recover it With a Windows Data Recovery Tool
- Conclusion
- Windows Kernel Drivers — Стандартные ошибки – IRQL
- На вашем ПК возникла проблема
- Руководство по “IRQL Не меньше или равна” синий экран смерти ошибки A Guide to the “IRQL Not Less Or Equal” Blue Screen of Death Error
Mansi Verma is a Senior Technology Writer at Stellar®. She is a Tech enthusiast, holding over 8 years of experience in Data Recovery, IoT, Artificial Intelligence, and the Robotics technology domain. She loves researching and providing DIY solutions to solve Windows technical issues. In her spare time, she likes reading novels, and poetry. She also enjoys Travelling, Rafting, Trekking, etc.
What is IRQL_NOT_LESS_OR_EQUAL Error in Windows 10?
Summary: Are you encountering ‘IRQL_NOT_LESS_OR_EQUAL’ error? This blog consists of all the information about IRQL_NOT_LESS_OR_EQUAL Error in Windows 10 including the causes of this error, why it shows a stop code ‘0x0000000A’, and how to fix this BSOD error. We’ve also discussed how to recover data lost due to this error with Stellar Data Recovery Professional software. Get the software now!
- IRQL_NOT_LESS_OR_EQUAL Error
- Major Causes of IRQL_NOT_LESS_OR_EQUAL Error
- How To Fix IRQL_NOT_LESS_OR_EQUAL Error in Windows 10?
- Lost Data Due To BSOD Error? Recover it With a Windows Data Recovery Tool
- Conclusion
“I have gone through a number of forums and tried everything to cure irql_not_less_or_equal error. Is there any other effective method to solve this error or should I just reach out to a tech-expert? Any help would be appreciated.”
“I am facing a blue screen problem with error code 0x0000000A. My previous system was Windows 7 Pro in which I used to face the same issue. Now, even after upgrading to Windows 10, I’m still getting this error message. Can anyone help?”
IRQL_NOT_LESS_OR_EQUAL Error
The IRQL_NOT_LESS_OR_EQUAL is a BSOD (Blue Screen of Death) error. This error occurs at Windows startup and with a STOP Code: 0x0000000A (See Image 1). Generally, this error occurs due to the faulty device driver, device memory, or other reasons.

Major Causes of IRQL_NOT_LESS_OR_EQUAL Error
There could be several causes associated with this blue screen error, which are as follows:
- Faulty or Corrupt Device Drivers
- Malicious Software installed on PC
- Corrupt System Files
- Faulty/Corrupt Hardware
- Wrong Windows Installation
How To Fix IRQL_NOT_LESS_OR_EQUAL Error in Windows 10?

Method 1: Update Device Drivers
If faulty or corrupt Device Drivers are causing this error with stop code: 0x0000000A, update drivers or uninstall them by following these steps:
a. Press Windows + R to open Run dialog box. Type devmgmt.msc and hit Enter to open Device Manager (See Image 2).

b. Select a category to see device drivers.
c. Right-click the selected driver and click Update Driver (See Image 3).

d. Select Search automatically for updated driver software. (See Image 4)

e. Windows will search for the latest software drivers. You may check the drivers and update them.
f. In case you don’t find the appropriate driver, uninstall the corrupt Driver to fix the issue.
Method 2: Run Windows Memory Diagnostic Tool
Sometimes, there could be a problem with RAM. To check if the system RAM is causing this error, run the Windows Memory Diagnostic tool in few simple steps as below:
a. Open Windows Memory Diagnostic tool by typing memory diagnostic in the Windows Search Box. (See Image 5)

b. Click Restart now and check for problems (recommended). (See Image 6)

c. Wait for the process to end. Once the search is completed, the computer will show all the detected problems on the screen.
Method 3: Run SFC/Scannow
Corrupt system files could also be the reason behind IRQL_NOT_LESS_OR_EQUAL error: 0x0000000A. You may fix the error by following the given steps:
a. Open Command Prompt by typing cmdin the Windows Search Box and click Run as administrator. (Image 7)

b. In Command Prompt window, type SFC/Scannow command and hit Enter. ( See Image 8)

c. Wait until the process is complete. Once the process is done, exit the Command Prompt and restart your system to check if the error is fixed.
Method 4: Run BSOD Troubleshooter
Try out Windows built-in troubleshooting utility- BSOD Troubleshooter to fix IRQL_NOT_LESS_OR_EQUAL error in Windows 10 with the help of these steps:
a. Go to Settings > Update & Security.
b. Click Troubleshoot and under Find and fix other problems, select BSOD error (Blue Screen).
На вашем ПК возникла проблема. Синий экран. Как исправить!
c. Click Run the troubleshooter. (See Image 9)

d. Follow the instructions and fix the error.
Method 5: Run CHKDSK Command
If the error is occurring due to faulty or corrupt hard drives, you may fix the problem by running the CHKDSK command. Try the below said troubleshooting steps:
Как исправить Синий экран с разными ошибками (ntoskrnl.exe)
a. Open Command Prompt as discussed in Method 3 .
b. Type chkdsk /r /r D: and hit Enter (D: is the drive letter of the affected hard drive). (See Image 10)

c. Let the process finish. Once it is done, restart your system and check if the issue is fixed.
Note: CHKDSK command marks down the bad sectors in the hard drive. Due to this, Windows doesn’t read or store data from marked sectors. This situation leads you to lose access to the data. Although, you may use a Windows Data Recovery tool to recover data lost after using CHKDSK command.
Method 6: Reinstall windows
If you are not able to fix this blue screen error with the help of the above-stated methods, you will have to reinstall Windows 10. You may reinstall Windows 10 by downloading and using Windows Media Creation tool. But remember, after reinstalling Windows, you will lose all the important data stored on your system as the process of reinstalling Windows involves complete formatting of the system making your data completely inaccessible.
Lost Data Due To BSOD Error? Recover it With a Windows Data Recovery Tool
If you lose data due to this BSOD error, you may get it back with the help of an efficient data recovery tool such as Stellar Data Recovery Professional. The software can restore data from all Windows PCs and external storage devices. This DIY software can easily recover data from formatted, corrupted, or virus-infected drives. This tool can help you get back your data even from a crashed system. After retrieving your data, you may fix this error with the methods stated above.
Conclusion
IRQL_NOT_LESS_OR_EQUAL error in Windows 10 is a BSOD error that can be resolved with the help of methods shared in this post. But keep in mind that while methods like running CHKDSK command or reinstalling Windows 10 can fix the error, they may lead to permanent data loss from the system. So retrieve your lost or inaccessible data first with the help of a specialized data recovery tool such as Stellar Data Recovery Professional and then follow the troubleshooting methods to fix this error.
About The Author
Mansi Verma is a Senior Technology Writer at Stellar®. She is a Tech enthusiast, holding over 8 years of experience in Data Recovery, IoT, Artificial Intelligence, and the Robotics technology domain. She loves researching and providing DIY solutions to solve Windows technical issues. In her spare time, she likes reading novels, and poetry. She also enjoys Travelling, Rafting, Trekking, etc.
Best Selling Products

Stellar Data Recovery Premium
Stellar Data Recovery Premium for Window

Stellar Data Recovery Technician
Stellar Data Recovery Technician intelli

Stellar Data Recovery Toolkit
Stellar Data Recovery Toolkit is an adva

BitRaser File Eraser
BitRaser File Eraser is a 100% secure so
Windows Kernel Drivers — Стандартные ошибки – IRQL

Данная статья нацелена на тех, кто только недавно начал разрабатывать 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
Так что, подобный код будет часто выдавать 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, их список вы можете посмотреть тут:
Также Microsoft предоставляет небольшой whitepaper(в самом низу статьи) по управлению приоритетами потоков в ядре, и более подробно рассказывает некоторые тонкости по работе с ними:
Если же, вам всё-таки нужно каким-либо образом вызвать какое-либо Api, требующее более низких значений IRQL, то одним из вариантов решения данной проблемы могут стать WorkItem’ы. Но о них, я расскажу уже в другой статье.
Руководство по “IRQL Не меньше или равна” синий экран смерти ошибки A Guide to the “IRQL Not Less Or Equal” Blue Screen of Death Error

Эта статья является частью серии, посвященной синим экранам смерти. Синий экран смерти (BSoD) – это экран ошибки, который вы видите, когда Windows имеет серьезную проблему. Он останавливает ПК и отображает очень важную информацию.
В зависимости от сообщения об ошибке, которое вы должны выполнить, разные шаги.
IRQL_NOT_LESS_OR_EQUAL
IRQL_NOT_LESS_OR_EQUAL означает одну из двух вещей: проблемы с драйверами или плохую службу Windows, вызванную утилитой резервного копирования или антивирусным сканером. Это аналогичная, но различная ошибка для предыдущей, которую мы обсуждали, KMODE_EXCEPTION_NOT_HANDLED, поэтому большая часть этого руководства будет знакома.
Проблемы с драйверами
Иногда дополнительная информация на вашем Blue Screen отображает конкретный драйвер, вызывающий проблему, но это не всегда так.
Если это список драйверов, вы захотите отключить его. Если он не отображает его, прочитайте ниже.
Отключение определенного драйвера сложнее, но вот как вы это делаете.
Отключить драйвер проблемы
Чтобы отследить конкретный драйвер проблемы, вам нужно запустить Driver Verifier, приложение, входящее в состав Windows.
- Нажмите кнопку Пуск
- Введите верификатор в поле и нажмите Enter.
- Выберите « Создать стандартные параметры» , затем нажмите « Далее» , затем выберите « Автоматически выбирать все драйверы, установленные на этом компьютере».
- Нажмите « Далее» , затем « Готово»
- Перезагрузите компьютер, и вы увидите список драйверов, которые будут проверены во время запуска. Если есть неисправный драйвер, вы получите BSOD с соответствующим сообщением об ошибке
Затем вам нужно отключить проверку драйверов, чтобы она не всегда проверяла при запуске.
Чтобы отключить драйвер, как только вы его определили:
- Перезагрузите компьютер в безопасном режиме , чтобы избежать каких-либо дополнительных синих экранов смерти, пока вы пытаетесь решить проблему
- Нажмите кнопку Пуск
- Нажмите Панель управления
- Нажмите Диспетчер устройств
- Нажмите стрелку рядом с отдельными устройствами, щелкните правой кнопкой мыши на устройстве и выберите « Свойства».
- нажмите « Сведения», чтобы увидеть имя драйвера. Если вы видите какие-либо устройства с желтым восклицательным знаком, вы на правильном пути, но это не обязательно будет иметь место
- Кроме того, попробуйте сделать CTRL + F на рабочем столе Windows для имени драйвера, чтобы увидеть, в какой папке он находится; это даст представление о том, к какому устройству принадлежит драйвер
- После того как вы найдете драйвер для нарушителя, нажмите « Удалить» на том же экране «Свойства»
- Windows попытается переустановить сам драйвер из информации, которую он предоставляет из Интернета. Это называется Plug and Play. Разрешите это сделать
- Запустите Driver Reviver, чтобы обновить новый драйвер до последней версии
Запустить драйвер Reviver
В качестве альтернативы сначала запустите Driver Reviver и посмотрите, не заботится ли об обновлении драйверов до последней версии.
Неисправная служба Windows
Иногда эта ошибка возникает, когда утилита резервного копирования или антивирусный сканер вносит изменения в Windows, которые ему не нравятся. Если вы установили и запустили такое приложение в последнее время, вам захочется перезагрузиться в безопасном режиме и удалить его. Если это не сработает, восстановите точку восстановления, которая находится непосредственно перед установкой указанного приложения, и вместо этого используйте другое приложение. У нас есть рекомендации для надежных утилит резервного копирования, а также антивирусных сканеров .

Запуск Windows Restore приведет к удалению всех следов приложения.
Дополнительная информация от Microsoft
Вот страница на веб-сайте Microsoft об этой конкретной ошибке BSoD. Это довольно технично, но стоит проверить, не работают ли вышеупомянутые решения.
Похожие статьи
-
Нажмите на звезду, чтобы оценить! IRQL NOT LESS OR EQUAL – Fix for Windows 10, 11, XP, Vista, 7, 8 Get the fix for the error IRQL NOT LESS OR EQUAL on…
-
Irql not less or equal как исправить
Чтобы компьютер автоматически искал обновленные драйверы, выберите этот параметр в раскрывающемся меню. Текущий шаг мастера — поиск новых драйверов в…
-
Irlq not less or equal windows 10
К счастью, ошибку «IRQL_not_less_or_equal» легко исправить, и если обновление Windows не решило проблему, то один из упомянутых ниже методов наверняка…