Error Medic

Microsoft Windows Stop Code Errors: Complete Troubleshooting Guide (BSOD Fix)

Fix Microsoft Windows stop code errors including MEMORY_MANAGEMENT, CRITICAL_PROCESS_DIED, and more. Step-by-step commands and permanent solutions.

Last updated:
Last verified:
2,462 words
Key Takeaways
  • Windows Stop Code errors (BSODs) are triggered by hardware failures, driver conflicts, corrupt system files, or bad memory modules — identifying the exact stop code from Event Viewer or the minidump file narrows the root cause immediately.
  • MEMORY_MANAGEMENT stop codes (0x0000001A) specifically point to RAM faults, faulty drivers writing outside allocated memory, or corrupted virtual memory settings — running Windows Memory Diagnostic and MemTest86 is the first mandatory step.
  • Quick fix summary: Note the exact stop code, boot into Safe Mode if needed, run 'sfc /scannow' and 'DISM /Online /Cleanup-Image /RestoreHealth' to repair system files, update or roll back drivers, then run Windows Memory Diagnostic — most BSODs resolve within these four actions.
Fix Approaches Compared
MethodWhen to UseTimeRisk
SFC + DISM ScanCorrupted system files, random BSODs after Windows Update15-30 minLow
Driver Rollback / UpdateBSOD started after installing new hardware or updating drivers10-20 minLow-Medium
Windows Memory DiagnosticMEMORY_MANAGEMENT (0x1A), PAGE_FAULT_IN_NONPAGED_AREA (0x50)30-60 minNone
MemTest86 (Bootable)Repeated MEMORY_MANAGEMENT BSODs, SFC finds no errors2-8 hoursNone
Startup Repair (WinRE)Cannot boot normally, BSOD at login screen or POST20-40 minLow
System RestoreBSOD started after software install or Windows Update15-30 minMedium (reverts changes)
Clean Driver Install (DDU)GPU/NIC driver-related stop codes persist after rollback20-40 minMedium
RAM ReplacementMemTest86 confirms hardware errors on specific RAM stick30-60 minLow (hardware swap)
Windows Reset / ReinstallAll other methods exhausted, recurring stop codes1-3 hoursHigh (data risk without backup)

Understanding Microsoft Windows Stop Code Errors

A Windows Stop Code error — commonly called a Blue Screen of Death (BSOD) — appears when Windows detects a critical system fault from which it cannot safely recover. The operating system halts completely, displays a blue screen with a stop code (e.g., MEMORY_MANAGEMENT, CRITICAL_PROCESS_DIED, KERNEL_SECURITY_CHECK_FAILURE), and either reboots automatically or waits for user intervention.

The full error URL Microsoft displays on modern Windows 10/11 BSODs is:

https://www.microsoft.com/en-us/windows/stop-code

This page provides a general overview, but the actionable fix lives in the specific stop code itself. Always record:

  • The stop code string (e.g., MEMORY_MANAGEMENT)
  • The hexadecimal value (e.g., 0x0000001A)
  • Any parameter values listed in parentheses
  • The faulting module name if visible (e.g., ntfs.sys, nvlddmkm.sys)

Common Windows Stop Codes and Their Meanings

Stop Code Hex Primary Cause
MEMORY_MANAGEMENT 0x0000001A RAM hardware fault, driver memory corruption
PAGE_FAULT_IN_NONPAGED_AREA 0x00000050 Bad RAM, faulty driver, corrupt system files
CRITICAL_PROCESS_DIED 0x000000EF Core Windows process killed unexpectedly
SYSTEM_SERVICE_EXCEPTION 0x0000003B Driver bug, antivirus conflict
KERNEL_SECURITY_CHECK_FAILURE 0x00000139 Corrupted kernel data, driver issue
IRQL_NOT_LESS_OR_EQUAL 0x0000000A Driver accessing invalid memory address
DRIVER_IRQL_NOT_LESS_OR_EQUAL 0x000000D1 Specific driver at fault (named in screen)
BAD_POOL_HEADER 0x00000019 Heap corruption, faulty driver
NTFS_FILE_SYSTEM 0x00000024 Disk corruption, failing HDD/SSD
WHEA_UNCORRECTABLE_ERROR 0x00000124 CPU/hardware-level uncorrectable error

Step 1: Collect Diagnostic Information

1a. Find the stop code in Event Viewer:

  1. Press Win + X → select Event Viewer
  2. Navigate to Windows Logs → System
  3. Filter by Event ID 41 (unexpected shutdown) or Event ID 1001 (BugCheck)
  4. The BugCheck entry contains the stop code hex value and parameters

1b. Analyze the minidump file: Minidump files are saved to C:\Windows\Minidump\ after each BSOD. Use WinDbg or the online Microsoft symbol server to analyze them.

1c. Check system uptime and crash history: Open PowerShell as Administrator and run:

Get-EventLog -LogName System -EntryType Error -Newest 20 | Where-Object {$_.EventID -eq 41 -or $_.EventID -eq 1001} | Format-List TimeGenerated, Message

Step 2: Repair System Files (SFC + DISM)

System file corruption is responsible for a significant percentage of recurring BSODs. Run these commands in sequence from an elevated command prompt:

:: Step 1 - DISM repairs the Windows component store
DISM /Online /Cleanup-Image /CheckHealth
DISM /Online /Cleanup-Image /ScanHealth
DISM /Online /Cleanup-Image /RestoreHealth

:: Step 2 - SFC uses the repaired store to fix system files
sfc /scannow

After both complete, restart your PC and check if the BSOD recurs.

If you cannot boot normally, boot into Windows Recovery Environment (WinRE):

  1. Hold Shift while clicking Restart from the Start menu
  2. Go to Troubleshoot → Advanced Options → Command Prompt
  3. Run sfc /scannow /offbootdir=C:\ /offwindir=C:\Windows

Step 3: Diagnose and Fix Memory Issues (MEMORY_MANAGEMENT Stop Code)

The MEMORY_MANAGEMENT stop code (0x0000001A) and related codes like PAGE_FAULT_IN_NONPAGED_AREA (0x50) almost always involve RAM.

3a. Run Windows Memory Diagnostic:

mdsched.exe

Choose Restart now and check for problems. Windows will run two passes of memory tests and report errors on reboot. Check Event Viewer → Windows Logs → System for Event ID 1201 (MemoryDiagnostics-Results) after restart.

3b. Check virtual memory settings:

  1. Right-click This PC → Properties → Advanced system settings
  2. Under Performance, click SettingsAdvanced tab → Change
  3. Ensure Automatically manage paging file size is checked, OR set a manual minimum of 1.5x your RAM size

3c. Reseat RAM modules: Power off the PC, open the case, remove RAM sticks, clean the contacts with isopropyl alcohol, and reseat firmly. If you have multiple sticks, test one at a time.

3d. Run MemTest86 for hardware confirmation: Download MemTest86 from memtest86.com, create a bootable USB, and run for at least 2 full passes (ideally overnight). Any errors confirm faulty RAM requiring replacement.


Step 4: Update or Roll Back Drivers

Driver-related stop codes frequently name the offending .sys file on the BSOD screen (e.g., nvlddmkm.sys for NVIDIA, atikmdag.sys for AMD GPU drivers).

4a. Roll back a driver:

  1. Press Win + XDevice Manager
  2. Expand the relevant category (Display Adapters, Network Adapters, etc.)
  3. Right-click the device → PropertiesDriver tab → Roll Back Driver

4b. Update drivers via PowerShell:

# Check for driver updates via Windows Update
Get-WindowsUpdate -Category Drivers -Install -AcceptAll

4c. Use Display Driver Uninstaller (DDU) for GPU drivers: For persistent GPU-related BSODs, boot into Safe Mode and use DDU to completely remove the GPU driver before installing the latest version from the manufacturer's website.

To boot into Safe Mode:

bcdedit /set {default} safeboot minimal
shutdown /r /t 0
:: After fixing, remove safeboot flag:
bcdedit /deletevalue {default} safeboot

Step 5: Check Disk Health

For stop codes like NTFS_FILE_SYSTEM (0x24) or CRITICAL_PROCESS_DIED (0xEF), the storage drive may be failing.

:: Check and repair disk errors (schedule for next reboot)
chkdsk C: /f /r /x

:: Check NVMe/SSD health via PowerShell
Get-PhysicalDisk | Get-StorageReliabilityCounter | Select-Object DeviceId, ReadErrorsTotal, WriteErrorsTotal, Temperature

For SMART data analysis, download CrystalDiskInfo (free) and check for Caution or Bad status on reallocated sectors or pending sectors.


Step 6: Use WinDbg to Analyze Minidump Files

For recurring or unresolved BSODs, minidump analysis pinpoints the exact driver or module causing the fault.

Install WinDbg from Microsoft Store, then:

  1. Open WinDbg → File → Open Crash Dump
  2. Navigate to C:\Windows\Minidump\ and open the most recent .dmp file
  3. In the command window, type: !analyze -v
  4. Look for the PROBABLE_CAUSE and FAULTING_MODULE fields in the output

Alternatively, use the free WhoCrashed tool which automates minidump analysis and provides human-readable explanations.


Step 7: Last Resort — System Restore or Reset

System Restore (if a restore point exists before BSODs started):

rstrui.exe

Choose a restore point dated before the BSOD began. This reverts system files and registry but preserves personal files.

Windows Reset (if all else fails):

  1. Settings → System → Recovery → Reset this PC
  2. Choose Keep my files to preserve personal data
  3. Choose Remove everything for a clean slate (backup data first)

Preventing Future Stop Code Errors

  • Enable Windows Update for automatic driver and security patches
  • Run sfc /scannow monthly as preventive maintenance
  • Monitor RAM and disk health quarterly with dedicated tools
  • Avoid overclocking without proper cooling and stability testing
  • Keep only signed, WHQL-certified drivers installed

Frequently Asked Questions

powershell
# ============================================================
# Windows Stop Code Diagnostic & Fix Script
# Run as Administrator in PowerShell
# ============================================================

Write-Host "=== Windows Stop Code Diagnostic Tool ===" -ForegroundColor Cyan

# --- 1. Check recent BSODs from Event Log ---
Write-Host "
[1] Recent BSOD Events (Last 30 days):" -ForegroundColor Yellow
Get-WinEvent -FilterHashtable @{LogName='System'; Id=41,1001; StartTime=(Get-Date).AddDays(-30)} -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Id, Message |
  Format-Table -AutoSize

# --- 2. List minidump files ---
Write-Host "
[2] Minidump Files Found:" -ForegroundColor Yellow
$dumpPath = "C:\Windows\Minidump"
if (Test-Path $dumpPath) {
  Get-ChildItem $dumpPath -Filter "*.dmp" | Sort-Object LastWriteTime -Descending | Select-Object Name, LastWriteTime, @{N='SizeMB';E={[math]::Round($_.Length/1MB,2)}}
} else {
  Write-Host "No minidump directory found. Ensure small memory dumps are enabled." -ForegroundColor Red
}

# --- 3. Ensure minidumps are enabled ---
Write-Host "
[3] Configuring Small Memory Dump (if not set):" -ForegroundColor Yellow
$crashControl = "HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl"
Set-ItemProperty -Path $crashControl -Name "CrashDumpEnabled" -Value 3  # Small memory dump
Set-ItemProperty -Path $crashControl -Name "MinidumpsDir" -Value "C:\Windows\Minidump"
Write-Host "Minidump configured." -ForegroundColor Green

# --- 4. Run DISM health check ---
Write-Host "
[4] Running DISM Component Store Health Check:" -ForegroundColor Yellow
DISM /Online /Cleanup-Image /CheckHealth

# --- 5. Run SFC scan ---
Write-Host "
[5] Running SFC System File Check:" -ForegroundColor Yellow
sfc /scannow

# --- 6. Check disk health ---
Write-Host "
[6] Physical Disk Reliability Counters:" -ForegroundColor Yellow
try {
  Get-PhysicalDisk | ForEach-Object {
    $rel = $_ | Get-StorageReliabilityCounter
    [PSCustomObject]@{
      Drive         = $_.FriendlyName
      ReadErrors    = $rel.ReadErrorsTotal
      WriteErrors   = $rel.WriteErrorsTotal
      TempCelsius   = $rel.Temperature
      WearLevel     = $rel.Wear
    }
  } | Format-Table -AutoSize
} catch {
  Write-Host "Could not retrieve disk counters. Run CrystalDiskInfo for detailed SMART data." -ForegroundColor DarkYellow
}

# --- 7. Check for driver updates via Windows Update ---
Write-Host "
[7] Checking Windows Update for Driver Updates:" -ForegroundColor Yellow
try {
  $session = New-Object -ComObject Microsoft.Update.Session
  $searcher = $session.CreateUpdateSearcher()
  $results = $searcher.Search("IsInstalled=0 and Type='Driver'")
  if ($results.Updates.Count -gt 0) {
    Write-Host "Pending driver updates found: $($results.Updates.Count)" -ForegroundColor Red
    $results.Updates | ForEach-Object { Write-Host " - $($_.Title)" }
  } else {
    Write-Host "No pending driver updates." -ForegroundColor Green
  }
} catch {
  Write-Host "Unable to query Windows Update. Check Windows Update manually." -ForegroundColor DarkYellow
}

# --- 8. Memory diagnostic reminder ---
Write-Host "
[8] Schedule Windows Memory Diagnostic on Next Reboot:" -ForegroundColor Yellow
Write-Host "Run: mdsched.exe  and choose 'Restart now and check for problems'" -ForegroundColor White

# --- 9. RAM info ---
Write-Host "
[9] Installed RAM Modules:" -ForegroundColor Yellow
Get-WmiObject Win32_PhysicalMemory | Select-Object BankLabel, Capacity, Speed, Manufacturer, PartNumber | Format-Table -AutoSize

# --- 10. Check CPU temperature (requires OpenHardwareMonitor or HWiNFO running) ---
Write-Host "
[10] Uptime Since Last Boot:" -ForegroundColor Yellow
$os = Get-WmiObject Win32_OperatingSystem
$uptime = (Get-Date) - $os.ConvertToDateTime($os.LastBootUpTime)
Write-Host "System uptime: $([math]::Floor($uptime.TotalHours)) hours $($uptime.Minutes) minutes"

Write-Host "
=== Diagnostic Complete ==="  -ForegroundColor Cyan
Write-Host "Review results above. Next steps:"
Write-Host " 1. If SFC found errors -> Run: DISM /Online /Cleanup-Image /RestoreHealth then sfc /scannow again"
Write-Host " 2. If disk errors found -> Run: chkdsk C: /f /r (schedules on reboot)"
Write-Host " 3. For MEMORY_MANAGEMENT codes -> Run mdsched.exe or boot MemTest86 USB"
Write-Host " 4. Check minidump files with WinDbg: !analyze -v"
Write-Host " 5. For driver BSODs -> Device Manager -> Roll Back or update the flagged driver"
E

Error Medic Editorial

The Error Medic Editorial team is composed of senior DevOps engineers, SREs, and Windows systems administrators with 10+ years of experience diagnosing and resolving critical system failures across enterprise and consumer environments. Our guides are built from real incident postmortems, Microsoft documentation, and hands-on lab testing. We specialize in translating cryptic error codes into clear, actionable fix procedures for engineers and power users alike.

Sources

Related Articles in Microsoft Windows Stop Code

Explore More windows Guides