Error Medic

IRQL_NOT_LESS_OR_EQUAL & DRIVER_IRQL_NOT_LESS_OR_EQUAL BSOD: Complete Troubleshooting Guide

Fix IRQL_NOT_LESS_OR_EQUAL (0x0000000A) and DRIVER_IRQL_NOT_LESS_OR_EQUAL (0x000000D1) BSODs with step-by-step driver, RAM, and kernel diagnostics.

Last updated:
Last verified:
2,451 words
Key Takeaways
  • IRQL_NOT_LESS_OR_EQUAL (stop code 0x0000000A) occurs when a kernel-mode process or driver attempts to access pageable memory at an Interrupt Request Level (IRQL) that is too high — most commonly triggered by a faulty, outdated, or incompatible driver.
  • DRIVER_IRQL_NOT_LESS_OR_EQUAL (stop code 0x000000D1) is a closely related variant where a driver specifically is identified as the offender accessing an invalid memory address; common culprits include nvlddmkm.sys (NVIDIA), netio.sys, tcpip.sys, ndis.sys, dxgmms2.sys, and storage drivers like stornvme.sys or storport.sys.
  • Quick fix summary: Boot into Safe Mode, use WinDbg or WhoCrashed to identify the offending driver from the minidump, update or roll back that driver, run Windows Memory Diagnostic and SFC /scannow, and disable overclocking or XMP profiles to rule out RAM instability.
Fix Approaches Compared
MethodWhen to UseTimeRisk
Update/Roll Back Offending DriverDriver name shown in BSOD or minidump (e.g., nvlddmkm.sys, netio.sys)5–15 minLow
Windows Memory Diagnostic / MemTest86BSOD occurs randomly with no clear driver, or with irql_not_less_or_equal + RAM keywords30 min – 8 hrsNone
SFC /scannow + DISM RestoreHealthSystem files corrupted (ntoskrnl.exe, ntkrnlmp.exe implicated)15–45 minNone
Uninstall Antivirus / VPN Driversfwpkclnt.sys, covpnv64.sys, fbnetflt.sys, or similar filter drivers in trace5–10 minLow
Disable XMP/DOCP RAM ProfileCrashes during gaming or heavy load; RAM running above rated JEDEC speed2–5 min (BIOS)None
Clean Driver Reinstall via DDUGPU driver (nvlddmkm.sys, amdkmdag.sys, igdkmd64.sys) repeatedly implicated20–30 minLow
Check for Windows Updates / HotfixesError appeared after a Windows update or on freshly installed Windows10–30 minNone
Hardware Reseating / ReplacementAll software fixes exhausted; possible failing NIC, RAM stick, or NVMe SSD30–60 minMedium

Understanding IRQL_NOT_LESS_OR_EQUAL and DRIVER_IRQL_NOT_LESS_OR_EQUAL

Windows uses Interrupt Request Levels (IRQLs) to prioritize kernel-mode operations. Normal user-mode code runs at IRQL 0 (PASSIVE_LEVEL). Device drivers often elevate to IRQL 2 (DISPATCH_LEVEL) to perform time-sensitive work. The bug check 0x0000000A (IRQL_NOT_LESS_OR_EQUAL) fires when any kernel component tries to read or write pageable memory while the processor is at DISPATCH_LEVEL or higher — memory that may have been swapped to disk and is therefore unreachable at that IRQL.

Bug check 0x000000D1 (DRIVER_IRQL_NOT_LESS_OR_EQUAL) is a more specific variant where Windows has positively identified a driver as the source of the illegal memory access. The BSOD screen will typically show a filename such as:

  • nvlddmkm.sys — NVIDIA display driver
  • amdkmdag.sys — AMD/ATI display driver
  • igdkmd64.sys — Intel integrated graphics
  • netio.sys, tcpip.sys, ndis.sys — Windows networking stack
  • dxgkrnl.sys, dxgmms2.sys — DirectX graphics kernel
  • stornvme.sys, storport.sys, iastora.sys — Storage drivers
  • usbxhci.sys, usbport.sys — USB host controller drivers
  • ntoskrnl.exe / ntkrnlmp.exe — Windows kernel itself (often a symptom of bad RAM or corrupted system files)

The four parameters displayed on the blue screen (visible when the crash occurs or in the minidump) are: (1) Memory address referenced, (2) IRQL at time of reference, (3) Access type (0=read, 1=write, 8=execute), (4) Address of the instruction that caused the fault.


Step 1: Collect the Minidump and Identify the Culprit

Before changing anything, find the crash dump files. Windows writes them to C:\Windows\Minidump\ by default.

Enable minidump logging if not already set:

  1. Right-click This PCPropertiesAdvanced system settingsStartup and RecoverySettings.
  2. Under Write debugging information, select Small memory dump (256 KB).
  3. Confirm the dump directory is %SystemRoot%\Minidump.

Analyze with WinDbg (Windows Debugger): Install WinDbg from the Microsoft Store or the Windows SDK, then open a minidump:

!analyze -v

The !analyze -v output will show the MODULE_NAME, IMAGE_NAME, and FAILURE_BUCKET_ID — these pinpoint the exact driver or module.

Free alternative — WhoCrashed / NirSoft BlueScreenView: Both tools parse minidump files without requiring debugger symbols and display the faulting driver filename, crash address, and stack trace in a readable table.


Step 2: Boot into Safe Mode (If System Won't Stay Stable)

If the system crashes before you can work on it, boot Safe Mode to disable non-essential drivers:

  • Windows 10/11: Hold Shift and click Restart → Troubleshoot → Advanced Options → Startup Settings → Restart → Press 4 for Safe Mode or 5 for Safe Mode with Networking.
  • Windows 8/8.1: Same path via PC Settings or hold Shift+F8 at boot.
  • Windows 7/XP: Press F8 at POST and select Safe Mode.

Step 3: Update, Roll Back, or Uninstall the Offending Driver

Once you know the culprit driver, take one of these actions:

To update a driver:

  • Open Device Manager (devmgmt.msc) → locate the device → right-click → Update driver → Search automatically, OR download the latest from the manufacturer's website.

To roll back a driver:

  • Device Manager → right-click device → PropertiesDriver tab → Roll Back Driver (grayed out if no previous version is stored).

For GPU drivers specifically (nvlddmkm.sys, amdkmdag.sys, igdkmd64.sys): Use Display Driver Uninstaller (DDU) in Safe Mode for a completely clean removal before reinstalling:

  1. Download DDU from Wagnardsoft.
  2. Boot Safe Mode, run DDU, select your GPU type, click Clean and Restart.
  3. After restart, install the latest stable driver from NVIDIA/AMD/Intel.

For network drivers (netio.sys, ndis.sys, tcpip.sys, netwtw04.sys, netwtw10.sys, rtwlanu.sys, rt640x64.sys):

  • Update the NIC/Wi-Fi adapter driver via Device Manager or the chipset/adapter manufacturer site.
  • If a VPN client driver (covpnv64.sys, fbnetflt.sys, ipeaklwf.sys) is implicated, uninstall the VPN software entirely and retest.

For storage drivers (stornvme.sys, storport.sys, nvme.sys, iastora.sys):

  • Update the chipset driver package from Intel, AMD, or your motherboard vendor.
  • Update NVMe firmware from the SSD manufacturer's utility.

Step 4: Repair Windows System Files

If ntoskrnl.exe or ntkrnlmp.exe appears in the crash or no driver is named, system file corruption is likely:

# Run from elevated PowerShell or CMD
sfc /scannow

# If SFC finds unrepairable corruption, use DISM first:
DISM /Online /Cleanup-Image /CheckHealth
DISM /Online /Cleanup-Image /ScanHealth
DISM /Online /Cleanup-Image /RestoreHealth

# Then re-run SFC
sfc /scannow

Step 5: Test RAM

Defective or overclocked RAM is a frequent hidden cause, especially when crashes occur during gaming (Fortnite, Valorant) or heavy workloads:

  1. Disable XMP/DOCP in BIOS: Enter BIOS setup (usually Del or F2 at POST), find the XMP/DOCP profile, and set memory to JEDEC default speed (e.g., 2133 MHz for DDR4). Retest stability.
  2. Windows Memory Diagnostic: Press Win+R → mdsched.exe → Restart now and check for problems. Choose Extended test for thorough coverage.
  3. MemTest86 (recommended): Boot from a USB with MemTest86. Run for at least 2 full passes (ideally overnight). Any errors = replace RAM.
  4. Swap sticks: If you have dual-channel RAM, test each stick individually in the primary slot to isolate a failing module.

Step 6: Check for Windows Updates and Driver Package Updates

Microsoft frequently releases hotfixes for IRQL-related crashes, especially after major feature updates. Go to Settings → Windows Update → Check for Updates and install all available updates including optional driver updates.


Step 7: Virtualization-Specific Fixes (VirtualBox / Hyper-V)

Users seeing irql_not_less_or_equal inside a VirtualBox or Hyper-V guest should:

  • Update VirtualBox Guest Additions to match the host version.
  • Ensure the host NIC driver is up to date.
  • Allocate at least 2 vCPUs to the VM.
  • Disable nested virtualization if not required.
  • On Windows 11 hosts, ensure Hyper-V and VirtualBox are not both active simultaneously without proper configuration.

Step 8: Advanced — Check IRQL with Driver Verifier

If the crash is intermittent and the culprit is unclear, enable Driver Verifier to force an immediate crash when any driver violates IRQL rules — making the faulting driver much easier to identify:

:: Enable Driver Verifier on all non-Microsoft drivers
verifier /standard /driver *.sys

:: Or target specific unsigned drivers
verifier /standard /driver drivername.sys

:: To reset Driver Verifier (important — do this after identifying the driver)
verifier /reset

Warning: Driver Verifier may cause the system to crash more frequently while active. Always have a way to boot into Safe Mode to reset it. Once the culprit is identified, disable Driver Verifier and update or remove that driver.


Step 9: Hardware Checks (Last Resort)

If all software fixes fail:

  • Re-seat RAM sticks, GPU, and NVMe/SATA drives — loose seating causes intermittent errors.
  • Check GPU and CPU temperatures — use HWiNFO64 or HWMonitor; thermal throttling or overheating can cause IRQL crashes.
  • Test with a different PSU — an unstable power supply causes memory and bus errors that manifest as IRQL BSODs.
  • Run chkdsk on the system drive: chkdsk C: /f /r /x — disk errors can corrupt driver data mid-access.

Frequently Asked Questions

powershell
# ============================================================
# IRQL_NOT_LESS_OR_EQUAL / DRIVER_IRQL_NOT_LESS_OR_EQUAL
# Diagnostic & Fix Script
# Run from an elevated PowerShell prompt
# ============================================================

# --- 1. List recent minidump files ---
Write-Host "=== Recent Minidump Files ==="
$dumpPath = "$env:SystemRoot\Minidump"
if (Test-Path $dumpPath) {
    Get-ChildItem $dumpPath -Filter "*.dmp" | Sort-Object LastWriteTime -Descending | Select-Object -First 10 | Format-Table Name, LastWriteTime, Length
} else {
    Write-Host "No minidump folder found. Enable small memory dumps in System Properties."
}

# --- 2. Check Windows Event Log for BugCheck events ---
Write-Host "`n=== BugCheck Events (Last 10) ==="
Get-WinEvent -FilterHashtable @{LogName='System'; Id=1001} -MaxEvents 10 -ErrorAction SilentlyContinue |
    Select-Object TimeCreated, Message | Format-List

# --- 3. Run System File Checker ---
Write-Host "`n=== Running SFC /scannow ==="
sfc /scannow

# --- 4. Run DISM to repair component store ---
Write-Host "`n=== Running DISM RestoreHealth ==="
DISM /Online /Cleanup-Image /RestoreHealth

# --- 5. Reset network stack (helps with netio.sys / tcpip.sys BSODs) ---
Write-Host "`n=== Resetting Network Stack ==="
netsh winsock reset
netsh int ip reset

# --- 6. Check for unsigned / potentially problematic drivers ---
Write-Host "`n=== Unsigned / Non-WHQL Drivers ==="
Get-WmiObject Win32_PnPSignedDriver |
    Where-Object { $_.IsSigned -eq $false -or $_.Signer -eq $null } |
    Select-Object DeviceName, DriverVersion, DriverDate, InfName |
    Format-Table -AutoSize

# --- 7. List all kernel drivers currently loaded ---
Write-Host "`n=== Currently Loaded Kernel Drivers ==="
Get-WmiObject Win32_SystemDriver | Where-Object { $_.State -eq 'Running' } |
    Sort-Object Name | Select-Object Name, PathName, State | Format-Table -AutoSize

# --- 8. Enable Driver Verifier on all third-party drivers (optional -- causes more crashes to identify culprit)
# WARNING: Only run this if crashes are intermittent and driver is unknown.
# RESET with: verifier /reset  (from Safe Mode if needed)
# Uncomment the lines below to enable:
# Write-Host "`n=== Enabling Driver Verifier ==="
# verifier /standard /driver *.sys

# --- 9. Check disk for errors ---
Write-Host "`n=== Scheduling CHKDSK on next boot ==="
# Uncomment to schedule:
# chkdsk C: /f /r /x
Write-Host "To schedule chkdsk, run: chkdsk C: /f /r /x"

# --- 10. Check current RAM XMP/speed (informational) ---
Write-Host "`n=== RAM Speed & Configuration ==="
Get-WmiObject -Class Win32_PhysicalMemory |
    Select-Object DeviceLocator, Capacity, Speed, Manufacturer, PartNumber |
    Format-Table -AutoSize

Write-Host "`n=== Done. Review output above, check minidumps with WinDbg or WhoCrashed for driver details. ==="
E

Error Medic Editorial

The Error Medic Editorial team is composed of senior DevOps engineers, SRE specialists, and Windows systems administrators with decades of combined experience diagnosing kernel-level crashes, driver conflicts, and hardware failures across enterprise and consumer environments. Our guides are built from real minidump analysis, Microsoft documentation, and community-verified fixes.

Sources

Related Articles in Other Irql_not_less_or_equal

Explore More windows Guides