IRQL_NOT_LESS_OR_EQUAL / DRIVER_IRQL_NOT_LESS_OR_EQUAL BSOD: Complete Troubleshooting Guide (Stop Code 0x0000000A & 0x000000D1)
Fix IRQL_NOT_LESS_OR_EQUAL and DRIVER_IRQL_NOT_LESS_OR_EQUAL BSODs on Windows 10/11. Step-by-step driver, RAM, and kernel diagnostics with real commands.
- IRQL_NOT_LESS_OR_EQUAL (0x0000000A) occurs when kernel-mode code accesses pageable memory at an interrupt request level (IRQL) that is too high — most commonly caused by a buggy or incompatible driver.
- DRIVER_IRQL_NOT_LESS_OR_EQUAL (0x000000D1) is a closely related variant that always implicates a specific driver (often listed in the crash dump as nvlddmkm.sys, netio.sys, tcpip.sys, ntoskrnl.exe, or a third-party driver) attempting an illegal memory access.
- Root causes include outdated or corrupt drivers (GPU, NIC, USB, storage), faulty or mismatched RAM, overclocking instability, antivirus/VPN filter drivers, and Windows kernel bugs patched by cumulative updates.
- Quick fix summary: (1) Identify the offending .sys file from the crash dump using WinDbg or WhoCrashed; (2) update, roll back, or uninstall that driver; (3) run Windows Memory Diagnostic or MemTest86 to rule out RAM; (4) run SFC /scannow and DISM to repair system files; (5) if networking drivers are involved (ndis.sys, netio.sys, tcpip.sys), reset the TCP/IP stack.
| Method | When to Use | Time | Risk |
|---|---|---|---|
| Update/Roll Back Offending Driver | A specific .sys file is named in the crash dump (e.g., nvlddmkm.sys, netio.sys) | 5–15 min | Low |
| Windows Memory Diagnostic / MemTest86 | Crashes are random with no consistent .sys file, or parameters show RAM addresses | 30 min – 8 hrs | None |
| SFC /scannow + DISM RestoreHealth | ntoskrnl.exe or ntkrnlmp.exe implicated; system files suspected corrupt | 10–20 min | None |
| Uninstall Third-Party Security/VPN Software | fwpkclnt.sys, covpnv64.sys, fbnetflt.sys, or similar filter drivers in dump | 5 min | Low (re-install later) |
| TCP/IP Stack Reset (netsh) | ndis.sys, netio.sys, or tcpip.sys in dump; network-related crashes | 2 min | Low |
| Disable Overclocking / Reset XMP Profile | Crashes during gaming or heavy CPU/GPU load (Fortnite, Valorant BSODs) | 5 min | None |
| Clean Boot + Driver Verifier | Intermittent crashes, cannot identify specific driver | 1–2 hrs | Medium (may cause intentional BSODs) |
| Windows Startup Repair / Reset | All other methods fail; system unstable at boot | 30–60 min | Medium–High |
Understanding the Error
When Windows displays a blue screen with the stop code IRQL_NOT_LESS_OR_EQUAL or DRIVER_IRQL_NOT_LESS_OR_EQUAL, it means the CPU was executing code at an elevated Interrupt Request Level (IRQL) and attempted to access a region of memory that was paged out to disk — something that is only safe at IRQL PASSIVE_LEVEL (0) or APC_LEVEL (1). The kernel detects this illegal access and immediately bugchecks to prevent data corruption.
- Stop code 0x0000000A →
IRQL_NOT_LESS_OR_EQUAL— often implicates kernel or third-party code without a clear driver name. - Stop code 0x000000D1 →
DRIVER_IRQL_NOT_LESS_OR_EQUAL— almost always names a specific driver in the "What failed" field.
The four crash dump parameters (visible in WinDbg) are:
- The memory address that was referenced.
- The IRQL at the time of the access.
- Whether the access was a read (0) or write (1).
- The instruction pointer that caused the fault.
Step 1: Read the Crash Dump to Identify the Offending Driver
Before applying any fix, identify exactly which component caused the crash. Blindly updating all drivers wastes time and can introduce new problems.
Option A — Use WhoCrashed (easiest):
Download and run WhoCrashed (free) from resplendence.com. It parses minidump files in C:\Windows\Minidump\ and displays a human-readable report including the offending driver.
Option B — Use WinDbg (most accurate):
Install WinDbg from the Microsoft Store or the Windows SDK, then open the latest .dmp file from C:\Windows\Minidump\ or C:\Windows\MEMORY.DMP.
Inside WinDbg run:
!analyze -v
Look for the MODULE_NAME, IMAGE_NAME, and FAULTING_MODULE fields. Common offenders and their meanings:
| File | Component |
|---|---|
| nvlddmkm.sys | NVIDIA GPU driver |
| amdkmdag.sys / amdppm.sys | AMD GPU / CPU power driver |
| igdkmd64.sys | Intel integrated GPU driver |
| ntoskrnl.exe / ntkrnlmp.exe | Windows kernel (often secondary; look deeper) |
| netio.sys / tcpip.sys / ndis.sys | Windows networking stack |
| nvme.sys / stornvme.sys / storport.sys / iastora.sys | NVMe/SATA storage drivers |
| usbport.sys / usbxhci.sys | USB host controller driver |
| kbdclass.sys | Keyboard class driver |
| wdf01000.sys | Windows Driver Framework |
| fwpkclnt.sys / covpnv64.sys / fbnetflt.sys | Windows Filtering Platform / VPN drivers |
| netwtw04.sys / netwtw10.sys / rtwlanu.sys / rt640x64.sys | Intel/Realtek Wi-Fi or Ethernet drivers |
| afd.sys | Ancillary Function Driver (Winsock) |
Step 2: Fix Based on the Identified Driver
2a. GPU Driver Issues (nvlddmkm.sys, amdkmdag.sys, igdkmd64.sys, dxgkrnl.sys, dxgmms2.sys)
- Boot into Safe Mode (hold Shift while clicking Restart → Troubleshoot → Advanced Options → Startup Settings → Enable Safe Mode with Networking).
- Use DDU (Display Driver Uninstaller) in Safe Mode to completely remove the GPU driver.
- Download the latest stable driver directly from NVIDIA, AMD, or Intel — avoid OEM-bundled versions.
- Install and reboot normally.
- If the crash persists on the latest driver, try the previous WHQL-certified version (driver rollback).
2b. Network Driver Issues (netio.sys, tcpip.sys, ndis.sys, netwtw10.sys, rt640x64.sys)
- Open Device Manager → Network Adapters → right-click your adapter → Update Driver.
- Alternatively, download the latest driver from your motherboard or laptop OEM's support page.
- Reset the networking stack (commands listed in the code block section below).
- If a VPN or security product is installed and fwpkclnt.sys, covpnv64.sys, or a similar filter driver appears, uninstall that software first.
2c. Storage Driver Issues (stornvme.sys, nvme.sys, iastora.sys, storport.sys)
- Check for firmware updates for your NVMe/SSD drive from the manufacturer's utility.
- Update the Intel RST (Rapid Storage Technology) driver if iastora.sys is implicated.
- In Device Manager → Disk Drives, confirm your drive is recognized and healthy.
- Run
chkdsk C: /f /rto rule out filesystem corruption.
2d. RAM / Memory Issues (random addresses, memory_management co-occurrence)
If no single driver is consistently named, or if you see addresses like 00000000 00000000 or 00000000 00000010 in the parameters, RAM is a prime suspect.
- Run Windows Memory Diagnostic: Press Win+R →
mdsched.exe→ Restart now and check for problems. - For thorough testing, boot from a MemTest86 USB drive and run at least 2 full passes.
- If you have multiple RAM sticks, test each stick individually in slot A2.
- Disable XMP/EXPO profile in BIOS if overclocking RAM — run at JEDEC spec first to confirm stability.
2e. System File Corruption (ntoskrnl.exe / ntkrnlmp.exe implicated)
Run the following commands in an elevated Command Prompt:
sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth
Reboot after completion. If SFC reports unfixable files, a Windows repair install (in-place upgrade) preserves your data while replacing system files.
2f. VirtualBox-Specific IRQL_NOT_LESS_OR_EQUAL
If the crash occurs when starting a VirtualBox VM, the issue is usually the VirtualBox kernel driver (VBoxDrv.sys) conflicting with Hyper-V or Windows Hypervisor Platform.
- Disable Hyper-V:
bcdedit /set hypervisorlaunchtype offand reboot. - Or enable VirtualBox's Hyper-V backend: In VirtualBox settings → System → Acceleration → select "Hyper-V" paravirtualization.
- Update VirtualBox to the latest release.
2g. Gaming BSODs (Fortnite, Valorant, other games)
Gaming triggers high GPU/CPU utilization, exposing driver instability or thermal issues:
- Update GPU drivers (primary suspect).
- Disable hardware-accelerated GPU scheduling (HAGS) in Windows Graphics Settings if recently enabled.
- Check CPU/GPU temperatures with HWiNFO64 — thermal throttling causing instability.
- Disable any overlay software (Discord, MSI Afterburner, GeForce Experience) temporarily.
- For Valorant, the Vanguard anti-cheat driver can conflict — ensure it is up to date.
Step 3: Universal Cleanup Steps (Apply After Driver Fix)
Run Driver Verifier (only if you cannot identify the driver): Open an elevated CMD and run
verifier /standard /all. This forces all non-Microsoft drivers to undergo strict checks and will trigger a bugcheck naming the culprit. Important: Disable Verifier (verifier /reset) once you have identified the driver, as it degrades performance.Check for Windows Updates: Many IRQL BSODs on Windows 10/11 are fixed by cumulative updates. Go to Settings → Windows Update → Check for updates.
Check Event Viewer: Open Event Viewer → Windows Logs → System. Filter for Critical and Error events around the crash timestamp for additional clues.
Verify BIOS/UEFI is up to date: Especially on AMD Ryzen systems, a BIOS update may be required for proper AGESA support and power management (amdppm.sys crashes).
Disable Fast Startup: Control Panel → Power Options → Choose what the power buttons do → Turn off fast startup. This ensures a full kernel initialization on each boot.
Frequently Asked Questions
# ============================================================
# IRQL_NOT_LESS_OR_EQUAL / DRIVER_IRQL_NOT_LESS_OR_EQUAL
# Diagnostic & Fix Commands — Run in Elevated Command Prompt
# (Right-click CMD or PowerShell -> Run as Administrator)
# ============================================================
# --- 1. List recent minidump files for crash analysis ---
dir C:\Windows\Minidump\ /od
# --- 2. Open latest minidump in WinDbg (if installed) ---
# Replace <dumpfile> with the actual filename from step 1
# Then inside WinDbg console type: !analyze -v
windbg -z C:\Windows\Minidump\<dumpfile>.dmp
# --- 3. Quick crash info via PowerShell (no WinDbg needed) ---
Get-WinEvent -FilterHashtable @{LogName='System'; Id=41} | Select-Object -First 5 TimeCreated, Message
# --- 4. Check and repair system files ---
sfc /scannow
DISM /Online /Cleanup-Image /CheckHealth
DISM /Online /Cleanup-Image /ScanHealth
DISM /Online /Cleanup-Image /RestoreHealth
# --- 5. Reset Windows networking stack ---
# (Fixes netio.sys, tcpip.sys, ndis.sys BSODs)
netsh int ip reset C:\netsh_ip_reset.log
netsh winsock reset
netsh int ipv6 reset
ipconfig /flushdns
# Reboot after running the above four commands
# --- 6. Check disk for errors (fix storage driver BSODs) ---
chkdsk C: /f /r /x
# Schedule on next reboot if C: is in use: type Y when prompted
# --- 7. Enable Driver Verifier to catch unknown bad drivers ---
# WARNING: May cause intentional BSODs. Only use on test systems
# or when you cannot identify the culprit driver.
verifier /standard /all
# After next BSOD, check the new dump — it will name the driver.
# DISABLE Verifier immediately after identifying the driver:
verifier /reset
# --- 8. Roll back a specific driver via PowerShell ---
# Example: roll back the display adapter driver
$dev = Get-PnpDevice | Where-Object { $_.FriendlyName -like '*Display*' }
$dev | Get-PnpDeviceProperty
# Then use Device Manager GUI -> Driver tab -> Roll Back Driver
# --- 9. Disable Fast Startup (prevents incomplete driver init) ---
powercfg /h off
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Power" /v HiberbootEnabled /t REG_DWORD /d 0 /f
# --- 10. Disable Hyper-V (fixes VirtualBox IRQL BSODs) ---
bcdedit /set hypervisorlaunchtype off
# To re-enable Hyper-V later:
# bcdedit /set hypervisorlaunchtype auto
# --- 11. Check memory for errors using built-in tool ---
start mdsched.exe
# Choose "Restart now and check for problems"
# --- 12. Export all installed drivers list for review ---
driverquery /fo csv /v > C:\drivers_list.csv
type C:\drivers_list.csv
# --- 13. Update all drivers via Windows Update (PowerShell) ---
# Requires PSWindowsUpdate module
Install-Module PSWindowsUpdate -Force
Get-WindowsUpdate -MicrosoftUpdate -AcceptAll
Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -AutoReboot
# --- 14. Check Event Log for critical errors near crash time ---
Get-WinEvent -LogName System -MaxEvents 50 | Where-Object { $_.LevelDisplayName -eq 'Critical' -or $_.LevelDisplayName -eq 'Error' } | Format-List TimeCreated, Id, Message
# --- 15. View current IRQL of running threads (kernel debugger) ---
# In WinDbg attached to live kernel or dump:
# !irql
# !thread
# kv (display call stack with IRQL info)Error Medic Editorial
The Error Medic Editorial team consists of senior DevOps engineers, SREs, and Windows kernel specialists with a combined 40+ years of experience diagnosing production system failures, analyzing crash dumps, and building runbooks for Fortune 500 infrastructure teams. Our guides are grounded in real crash dump analysis, official Microsoft documentation, and community-validated troubleshooting patterns.
Sources
- https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/bug-check-0xa--irql-not-less-or-equal
- https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/bug-check-0xd1--driver-irql-not-less-or-equal
- https://learn.microsoft.com/en-us/windows-hardware/drivers/devtest/driver-verifier
- https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/getting-started-with-windbg
- https://support.microsoft.com/en-us/windows/windows-stop-code-errors-2b544bfa-9f6d-4902-b1d2-2f0f0e3e7fd3
- https://stackoverflow.com/questions/tagged/bsod+windows-kernel
- https://github.com/MicrosoftDocs/windows-driver-docs/issues