IRQL_NOT_LESS_OR_EQUAL is Windows stop code 0x0000000A (0xA for short). Microsoft's reference says it means that Windows or a kernel-mode driver "accessed paged memory at an invalid address while at a raised interrupt request level (IRQL)," and that the cause "is typically a bad pointer or a pageability problem." In plain terms: low-level code touched memory it was not allowed to touch at that moment. Microsoft adds that the error usually shows up after installing a faulty device driver, system service or BIOS, and its page gives separate fixes for a faulty driver, a faulty service, antivirus software and faulty hardware.
This guide follows the Microsoft Learn page "Bug check 0xA: IRQL_NOT_LESS_OR_EQUAL," read on 12 October 2026 and checked against the Microsoft Docs source file. Microsoft labels the page as written for programmers and sends everyday users to its blue screen help page. We keep both audiences in view and tell you where the line falls.
What is an IRQL, and why does it crash Windows?
The interrupt request level is a priority setting inside the Windows kernel. When code runs at a raised level, Microsoft's page names DISPATCH_LEVEL, it may not touch memory that could be paged out to disk, because Windows cannot pause to fetch it. If a driver does so anyway, or follows a pointer to an address that is simply invalid, Windows stops with 0xA.
Microsoft's "Cause" section is short and direct: "This bug check is caused by kernel-mode device drivers that use improper addresses." It then lists the typical coding errors behind it: calling a function that cannot be called at DISPATCH_LEVEL, forgetting to release a spinlock, and marking code as pageable when it must stay in memory.
What do the four parameters mean?
| Parameter | Meaning (Microsoft Learn) |
|---|---|
| 1 | The virtual memory address that couldn't be accessed |
| 2 | IRQL at the time of the fault (2 means DISPATCH_LEVEL) |
| 3 | What the code was doing: 0x0 read, 0x1 write, 0x8 execute |
| 4 | The instruction pointer at the time of the fault |
Microsoft notes that the execute bit in parameter 3 is only reported on chipsets that support that level of reporting. It also gives one rule of thumb even a non-programmer can apply: if parameter 1 is less than 0x1000, the issue is likely a NULL pointer dereference, meaning the code used an empty pointer. The page's other hint is that a bad pointer can come from use-after-free or "bit-flipping."
You can read all four values without a debugger. Microsoft's general page on blue screen data says the bug check event in the Windows system log, opened in Event Viewer, lists the four parameters.
When does 0xA usually appear?
The "Remarks" section of Microsoft's page names two situations.
- After installing something. "The error that generates this bug check usually occurs after the installation of a faulty device driver, system service, or BIOS."
- During a Windows upgrade. If 0xA appears while upgrading to a newer version of Windows, Microsoft says the cause might be a device driver, a system service, a virus scanner or a backup tool that is incompatible with the new version.
So the first question is not technical. What did you install, update or upgrade just before the first crash? Write it down before you change anything else.
Step 1: read what the blue screen and the log already tell you
Microsoft's resolution section starts with gathering information:
- Examine the name of the driver if one was listed on the blue screen. A file name ending in .sys is the most direct lead you will get.
- Check the System Log in Event Viewer for other error messages that might help pinpoint the device or driver. Look for critical errors logged in the same time frame as the blue screen.
Step 2: the fix that matches the cause
Microsoft gives four short procedures, each tied to one kind of cause. They are summarised here in the order the page gives them, with nothing added.
A faulty hardware problem
If hardware has been added to the system recently, remove it and see whether the error comes back. If existing hardware has failed, remove or replace the faulty component. Run the hardware diagnostics supplied by the system manufacturer; Microsoft refers you to your computer's owner's manual for the details.
A faulty system service problem
Disable the service and confirm whether that resolves the error. If it does, contact the maker of the service about an update. If the error happens during startup, Microsoft says to investigate the Windows repair options, and links its recovery options article at https://support.microsoft.com/help/12415/windows-10-recovery-options.
An antivirus software problem
Disable the program and confirm whether that resolves the error. If it does, contact the maker of the program about an update.
A faulty driver
The page does not give this one its own heading, but it covers it in two places: the driver name on the blue screen (Step 1 above) and Driver Verifier, described next.
Step 3: Driver Verifier
Driver Verifier is built into Windows and, in Microsoft's words, "is available on all Windows PCs." It watches drivers in real time, checks how they use memory resources such as memory pools, and when it catches an error it deliberately raises an exception so the faulty part of the driver can be examined.
To start Driver Verifier Manager, type verifier at a command prompt and choose which drivers to check. Microsoft's advice is to verify the smallest number of drivers possible, because the checking code adds overhead while it runs. Microsoft's page does not walk through the settings screen; the full Driver Verifier documentation is linked from it.
Checklist
- Stop code and the four parameters copied exactly (photo of the screen or Event Viewer details)
- Driver file name, if the blue screen showed one
- Was parameter 1 below 0x1000? Note it; Microsoft reads that as a likely NULL pointer
- The last driver, service, BIOS update or Windows upgrade before the first crash
- Antivirus or backup software installed at the time
- Critical errors in the System Log within the same time frame
- Hardware added recently, and whether the manufacturer's diagnostics pass
For developers
If a kernel debugger is available, Microsoft says to obtain a stack trace: run !analyze first, then one of the k* commands to view the call stack. Use !pool on the parameter 1 address to see whether it is paged pool; if it is, the IRQL is too high to touch that data, so run at a lower IRQL or allocate the data from nonpaged pool. If parameter 3 shows an attempt to execute pageable code, the fix is either a lower IRQL or not marking that code as pageable. !pte, !address and ln help check whether parameter 1 is a valid address at all, and ln on parameter 4 names the faulting function. Microsoft's page also includes a worked debugger session using .bugcheck, kb, kv and .trap.
How is 0xA different from 0xD1?
Microsoft documents a separate code, DRIVER_IRQL_NOT_LESS_OR_EQUAL (0x000000D1), with its own page. Both involve memory access at too high an IRQL. The 0xA page covers access by "Microsoft Windows or a kernel-mode driver," while the 0xD1 name itself points at a driver. If your screen says DRIVER_IRQL_NOT_LESS_OR_EQUAL, use the 0xD1 page rather than this one; the parameters are laid out differently.
What this page does not cover
- A ranking of which fix works most often. Microsoft gives no success rates.
- Registry edits, overclocking advice or third-party "driver updater" tools. None appear on the Microsoft page for 0xA.
- The full debugger walkthrough. Developers should read Microsoft's original, linked below.
- Other stop codes. Our PC and phone fix index lists the stop code guides we have, searchable by code name or hex value.
Sources and how to check
- Bug check 0xA: IRQL_NOT_LESS_OR_EQUAL, Microsoft Learn: https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/bug-check-0xa--irql-not-less-or-equal
- Analyze bug check (stop code error) data, Microsoft Learn: https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/blue-screen-data
- Bug Check 0xD1: DRIVER_IRQL_NOT_LESS_OR_EQUAL, Microsoft Learn: https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/bug-check-0xd1--driver-irql-not-less-or-equal
- Bug check code reference, Microsoft Learn: https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/bug-check-code-reference2
- Troubleshoot blue screen errors (for regular users): https://www.windows.com/stopcode
- Source: Microsoft Learn, as of 12 October 2026. Checked against the Microsoft Docs source files (MicrosoftDocs/windows-driver-docs). Microsoft documentation is licensed under Creative Commons Attribution 4.0 (CC BY 4.0); this article adapts and summarises it with credit to Microsoft and links to the originals. Microsoft does not endorse this site.
Editor's note
Checked: the 0xA meaning sentence, the four parameters, the 0x1000 NULL pointer rule, the two "when it appears" remarks, the four cause-specific procedures and the Driver Verifier description, all against the Microsoft source file on 12 October 2026.
Not checked: which procedure resolves 0xA most often. Microsoft does not say, and nothing here was tested on hardware.
Left out on purpose: registry tweaks, paid tools, overclocking advice and any step that is not on a Microsoft page.
Frequently Asked Questions
What is stop code 0xA?
It is IRQL_NOT_LESS_OR_EQUAL (0x0000000A). Microsoft says Windows or a kernel-mode driver accessed paged memory at an invalid address while at a raised IRQL, typically because of a bad pointer or a pageability problem.
What usually triggers IRQL_NOT_LESS_OR_EQUAL?
Microsoft says it usually occurs after installing a faulty device driver, system service or BIOS. During a Windows upgrade it can come from an incompatible driver, service, virus scanner or backup tool.
What does parameter 1 below 0x1000 mean?
Microsoft's guideline is that if parameter 1 is less than 0x1000, the issue is likely a NULL pointer dereference.
Should I disable my antivirus?
Microsoft's procedure for an antivirus problem is to disable the program and confirm whether the error stops; if it does, contact the maker about an update.
How do I start Driver Verifier?
Type verifier at a command prompt and choose which drivers to check. Microsoft advises verifying as few drivers as possible because it adds overhead.