IRQL_NOT_LESS_OR_EQUAL / DRIVER_IRQL_NOT_LESS_OR_EQUAL Windows 10: Complete Fix Guide
Fix IRQL_NOT_LESS_OR_EQUAL and DRIVER_IRQL_NOT_LESS_OR_EQUAL BSODs on Windows 10. Step-by-step driver, RAM, and kernel troubleshooting guide.
- Root Cause 1: A kernel-mode driver (e.g., nvlddmkm.sys, netio.sys, afd.sys, tcpip.sys) attempted to access pageable memory at an elevated IRQL (Interrupt Request Level), violating Windows kernel rules.
- Root Cause 2: Faulty, outdated, or incompatible hardware drivers — especially GPU, NIC, and chipset drivers — are responsible for the vast majority of DRIVER_IRQL_NOT_LESS_OR_EQUAL stop codes.
- Root Cause 3: Defective or improperly configured RAM (wrong XMP/DOCP profile, bad DIMM slot, or failing sticks) can trigger IRQL_NOT_LESS_OR_EQUAL, particularly on fresh installs or at startup.
- Root Cause 4: Corrupted Windows system files (ntoskrnl.exe references in the dump) or malware-injected drivers can produce this BSOD without any hardware fault.
- Quick Fix Summary: Run Windows Memory Diagnostic and Driver Verifier to isolate the culprit; update or roll back the offending driver; run SFC /scannow and DISM to repair system files; and if RAM is bad, reseat or replace the faulty DIMM.
| Method | When to Use | Time | Risk |
|---|---|---|---|
| Update/Roll Back Offending Driver | BSOD dump names a specific .sys file (nvlddmkm.sys, netio.sys, afd.sys, tcpip.sys) | 5–15 min | Low |
| Windows Memory Diagnostic / MemTest86 | BSOD occurs on fresh install, at startup, or dump shows ntoskrnl.exe with no clear driver | 30 min – 8 hrs | None |
| Driver Verifier | Multiple drivers are suspect; need to isolate the exact culprit systematically | 1–4 hrs (stress testing) | Medium — may cause boot loops |
| SFC /scannow + DISM | ntoskrnl.exe listed in dump; system files suspected corrupt after update or malware | 15–30 min | Low |
| Uninstall Conflicting Software / Antivirus | BSOD started after installing new software, VPN, or third-party antivirus | 5–10 min | Low |
| Clean Windows 10 Install | All other methods fail; system is heavily corrupted or hardware incompatibility confirmed | 1–2 hrs | High — data loss risk |
| BIOS/UEFI Firmware Update | BSOD appears only during heavy workloads or with new hardware; chipset driver fails | 20–30 min | Medium |
Understanding the IRQL_NOT_LESS_OR_EQUAL Error
When Windows 10 displays a Blue Screen of Death (BSOD) with stop code IRQL_NOT_LESS_OR_EQUAL (bug check 0x0000000A) or DRIVER_IRQL_NOT_LESS_OR_EQUAL (bug check 0x000000D1), it means a kernel-mode component tried to access pageable memory while running at an Interrupt Request Level (IRQL) that was too high. At elevated IRQLs, Windows cannot safely page memory in from disk, so it halts the entire system to prevent data corruption.
The exact stop screen typically reads:
Your PC ran into a problem and needs to restart.
Stop code: DRIVER_IRQL_NOT_LESS_OR_EQUAL
What failed: nvlddmkm.sys (or netio.sys / afd.sys / tcpip.sys / ntoskrnl.exe)
The filename listed after "What failed" is your primary diagnostic clue.
Step 1: Read the Crash Dump
Before applying any fix, identify the exact driver at fault.
- Press Win + R, type
%SystemRoot%\Minidump, and press Enter. - Download WinDbg Preview from the Microsoft Store or install the Windows Debugging Tools.
- Open WinDbg, go to File → Open Crash Dump, and select the most recent
.dmpfile. - In the command window, type:
!analyze -v - Look for the
IMAGE_NAMEandMODULE_NAMEfields. These name the offending driver.
Alternatively, use WhoCrashed (free tool) for a plain-English summary.
Common offenders and their meaning:
- nvlddmkm.sys — NVIDIA display driver (GPU driver issue)
- netio.sys / tcpip.sys — Windows network stack (NIC driver, VPN, or firewall conflict)
- afd.sys — Ancillary Function Driver for Winsock (network software conflict)
- ntoskrnl.exe — Windows kernel itself (RAM fault, corrupt system files, or rootkit)
- dxgmms2.sys — DirectX Graphics MMS (GPU or display driver issue)
Step 2: Fix Driver-Related BSODs
2a. Update the Offending Driver
- Press Win + X → Device Manager.
- Locate the device associated with the .sys file (e.g., for nvlddmkm.sys → Display Adapters → your NVIDIA GPU).
- Right-click → Update driver → Search automatically for drivers.
- Alternatively, download the latest driver directly from the manufacturer's website (NVIDIA, AMD, Intel, Realtek, etc.).
For NVIDIA GPUs experiencing driver_irql_not_less_or_equal nvlddmkm sys windows 10:
- Go to https://www.nvidia.com/Download/index.aspx
- Select your GPU and OS, download the DCH or Standard driver package.
- Use DDU (Display Driver Uninstaller) in Safe Mode to fully remove the old driver before installing the new one.
2b. Roll Back the Driver
If the BSOD started after a Windows Update or driver update:
- Device Manager → right-click the device → Properties → Driver tab.
- Click Roll Back Driver if available.
2c. Fix Network Driver BSODs (netio.sys, afd.sys, tcpip.sys)
- Update your NIC driver from the motherboard or laptop manufacturer's support page.
- Disable Large Send Offload (LSO) in NIC advanced properties.
- Temporarily uninstall VPN clients (NordVPN, ExpressVPN, etc.) or third-party firewalls.
- Reset the Windows network stack:
Then restart.netsh winsock reset netsh int ip reset ipconfig /flushdns
Step 3: Test and Fix RAM
If the crash dump points to ntoskrnl.exe or the BSOD occurs during Windows 10 installation or at startup, RAM is a primary suspect.
3a. Windows Memory Diagnostic
- Press Win + R, type
mdsched.exe, press Enter. - Choose Restart now and check for problems.
- Windows will reboot and run the standard memory test. Check results in Event Viewer under Windows Logs → System, source MemoryDiagnostics-Results.
3b. MemTest86 (Thorough)
For a more thorough test, download MemTest86 (https://www.memtest86.com/), burn it to a USB, and run it overnight (minimum 2 full passes).
3c. Hardware Steps
- Reseat RAM: Power off, remove sticks, clean contacts with isopropyl alcohol, and reinsert firmly.
- Test one stick at a time: Remove all but one DIMM, boot, and test each stick individually.
- Disable XMP/DOCP: Enter BIOS/UEFI, go to memory settings, and set RAM to its default JEDEC frequency (e.g., 2133 MHz) instead of the XMP overclock profile. This is a very common cause of IRQL BSODs on fresh Windows 10 installs.
Step 4: Repair System Files
When ntoskrnl.exe is blamed, corruption in core Windows files may be the issue.
Run from an elevated Command Prompt:
sfc /scannow
DISM /Online /Cleanup-Image /CheckHealth
DISM /Online /Cleanup-Image /ScanHealth
DISM /Online /Cleanup-Image /RestoreHealth
Restart after completion and monitor for recurrence.
Step 5: Use Driver Verifier to Isolate Unknown Drivers
If you cannot identify the faulty driver from the dump, Driver Verifier will stress-test all non-Microsoft drivers and produce a more informative crash dump.
Warning: This step may cause your system to BSOD repeatedly. Only do this when you can afford instability, and know how to disable Verifier from Safe Mode.
- Press Win + R, type
verifier, press Enter. - Select Create standard settings → Next.
- Select Automatically select all drivers installed on this computer → Finish.
- Restart. Use the system normally. When a BSOD occurs, the dump will now name the exact driver.
- To disable: Boot into Safe Mode (hold Shift while clicking Restart → Troubleshoot → Advanced Options → Startup Settings → F4), then run
verifier /resetin Command Prompt.
Step 6: Check for Windows Updates and BIOS Firmware
- Go to Settings → Update & Security → Windows Update and install all pending updates.
- Visit your motherboard or laptop manufacturer's support page and update the BIOS/UEFI firmware. Firmware bugs can cause chipset drivers to misbehave.
Step 7: Clean Boot and Software Conflicts
Third-party antivirus, VPN kernel drivers, and overclocking utilities frequently cause IRQL violations.
- Press Win + R, type
msconfig, press Enter. - Go to Services tab, check Hide all Microsoft services, then click Disable all.
- Go to Startup tab → Open Task Manager → disable all startup items.
- Restart and observe. If stable, re-enable services in batches to identify the culprit.
Step 8: Last Resort — Reset or Reinstall Windows 10
If all else fails:
- Go to Settings → Update & Security → Recovery → Reset this PC.
- Choose Keep my files for a soft reset, or Remove everything for a clean slate.
- Alternatively, create a bootable Windows 10 USB via the Media Creation Tool and perform a clean install. This also resolves
irql_not_less_or_equal installing windows 10scenarios caused by incompatible drivers in the setup environment.
Frequently Asked Questions
# ============================================================
# IRQL_NOT_LESS_OR_EQUAL / DRIVER_IRQL_NOT_LESS_OR_EQUAL
# Windows 10 Diagnostic & Fix Script
# Run in an elevated (Administrator) PowerShell window
# ============================================================
# --- 1. Check for recent BSOD minidump files ---
Write-Host "=== Recent Minidump Files ==="
$minidumpPath = "$env:SystemRoot\Minidump"
if (Test-Path $minidumpPath) {
Get-ChildItem -Path $minidumpPath -Filter "*.dmp" | Sort-Object LastWriteTime -Descending | Select-Object -First 5 | Format-Table Name, LastWriteTime, Length
} else {
Write-Host "No minidump folder found. Ensure crash dumps are enabled."
}
# --- 2. Check Windows Event Log for Memory Diagnostic results ---
Write-Host "`n=== Memory Diagnostic Results ==="
try {
Get-WinEvent -LogName System -MaxEvents 50 | Where-Object { $_.ProviderName -eq 'Microsoft-Windows-MemoryDiagnostics-Results' } | Select-Object TimeCreated, Message | Format-List
} catch {
Write-Host "No Memory Diagnostic results found. Run mdsched.exe to schedule a test."
}
# --- 3. Run System File Checker ---
Write-Host "`n=== Running SFC (System File Checker) ==="
sfc /scannow
# --- 4. Run DISM to repair Windows image ---
Write-Host "`n=== Running DISM Health Check ==="
DISM /Online /Cleanup-Image /CheckHealth
Write-Host "`n=== Running DISM RestoreHealth ==="
DISM /Online /Cleanup-Image /RestoreHealth
# --- 5. Reset Winsock and TCP/IP stack (for netio.sys / tcpip.sys BSODs) ---
Write-Host "`n=== Resetting Network Stack ==="
netsh winsock reset
netsh int ip reset
ipconfig /flushdns
Write-Host "Network stack reset complete. A restart is required."
# --- 6. List all third-party (non-Microsoft) kernel drivers currently running ---
Write-Host "`n=== Third-Party Kernel Drivers ==="
Get-WmiObject Win32_SystemDriver | Where-Object { $_.State -eq 'Running' } | ForEach-Object {
$path = $_.PathName -replace '\\\?\\', ''
if ($path -and (Test-Path $path)) {
$sig = Get-AuthenticodeSignature $path -ErrorAction SilentlyContinue
if ($sig -and $sig.SignerCertificate -and $sig.SignerCertificate.Subject -notmatch 'Microsoft') {
[PSCustomObject]@{
Name = $_.Name
DisplayName = $_.DisplayName
Path = $path
Signer = $sig.SignerCertificate.Subject
}
}
}
} | Format-Table -AutoSize
# --- 7. Enable Driver Verifier on all non-Microsoft drivers ---
# WARNING: This will cause BSODs until you identify and fix the bad driver.
# Uncomment ONLY if you need to isolate an unknown driver.
# After identifying the driver, run: verifier /reset
# verifier /standard /all
# --- 8. Check RAM details (installed DIMMs) ---
Write-Host "`n=== Installed RAM Details ==="
Get-WmiObject Win32_PhysicalMemory | Select-Object Tag, Capacity, Speed, Manufacturer, MemoryType, FormFactor | Format-Table -AutoSize
# --- 9. Schedule Windows Memory Diagnostic on next boot ---
Write-Host "`n=== Scheduling Memory Diagnostic on Next Reboot ==="
# Uncomment the next line to schedule automatically:
# Start-Process mdsched.exe
Write-Host "Run 'mdsched.exe' manually and choose 'Restart now and check for problems'."
# --- 10. Export system info for further analysis ---
Write-Host "`n=== Exporting System Information to C:\irql_debug_info.txt ==="
$outputFile = "C:\irql_debug_info.txt"
"IRQL BSOD Debug Report - $(Get-Date)" | Out-File $outputFile
"`n--- OS Version ---" | Out-File $outputFile -Append
(Get-WmiObject Win32_OperatingSystem | Select-Object Caption, Version, BuildNumber, OSArchitecture) | Out-File $outputFile -Append
"`n--- Installed Drivers ---" | Out-File $outputFile -Append
Get-WmiObject Win32_SystemDriver | Select-Object Name, State, PathName | Out-File $outputFile -Append
"`n--- Recent System Errors ---" | Out-File $outputFile -Append
Get-WinEvent -LogName System -MaxEvents 100 -ErrorAction SilentlyContinue | Where-Object { $_.LevelDisplayName -eq 'Error' -or $_.LevelDisplayName -eq 'Critical' } | Select-Object TimeCreated, LevelDisplayName, Message | Out-File $outputFile -Append
Write-Host "Report saved to $outputFile"
Write-Host "`n=== Diagnostic Complete. Review output above and the report at $outputFile ==="Error Medic Editorial
Error Medic Editorial is a team of senior DevOps and SRE engineers with 10+ years of experience diagnosing Windows kernel panics, Linux system crashes, and cloud infrastructure failures. We combine crash dump analysis, vendor documentation, and community-sourced fixes to deliver actionable, technically accurate troubleshooting guides. Our Windows expertise spans kernel debugging with WinDbg, driver certification, and enterprise incident response.
Sources
- 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/debugger/bug-check-0xa--irql-not-less-or-equal
- https://support.microsoft.com/en-us/windows/using-system-file-checker-in-windows-365e0031-36b1-6031-f804-8fd86e0ef4ca
- https://learn.microsoft.com/en-us/windows-hardware/drivers/devtest/driver-verifier
- https://www.memtest86.com/
- https://stackoverflow.com/questions/tagged/bsod
- https://answers.microsoft.com/en-us/windows/forum/all/driver-irql-not-less-or-equal-bsod-windows-10/
- https://www.nirsoft.net/utils/who_crashed.html