Computer Keeps Blue Screening Windows 10: Complete BSOD Fix Guide
Fix Windows 10 blue screen of death (BSOD) crashes fast. Step-by-step diagnosis using WinDbg, Event Viewer, and built-in tools to stop recurring BSODs.
- Faulty RAM, corrupted drivers (especially GPU and storage controllers), and failing hard drives are the top hardware causes of recurring Windows 10 BSODs.
- Recently installed Windows Updates, third-party antivirus software, and overclocked hardware settings frequently trigger software-side blue screens.
- Quick fixes: note the STOP code shown on the blue screen, run 'sfc /scannow' and 'DISM /Online /Cleanup-Image /RestoreHealth' in an elevated Command Prompt, update or roll back drivers, and run Windows Memory Diagnostic to rule out RAM issues.
| Method | When to Use | Time | Risk |
|---|---|---|---|
| SFC / DISM System File Repair | Corrupted Windows system files suspected | 15-30 min | Low |
| Driver Rollback / Update | BSOD started after a driver or Windows Update | 10-20 min | Low |
| Windows Memory Diagnostic | Random BSODs with no clear pattern (RAM suspect) | 30-60 min | None |
| Check Disk (chkdsk) | BSODs with disk-related STOP codes (e.g., 0x0000007A) | 30-90 min | Low |
| System Restore | BSODs began after a specific software or update change | 15-30 min | Low-Medium |
| Overclocking Reset (BIOS defaults) | Overclocked CPU/RAM causing instability | 5 min | Low |
| Clean Boot / Startup Repair | Software conflict or corrupted boot environment | 20-40 min | Low |
| Windows 10 Reset / Reinstall | All other steps failed, persistent BSOD loop | 1-3 hours | High (data risk) |
Understanding Why Windows 10 Keeps Blue Screening
A Blue Screen of Death (BSOD) — technically a STOP error — occurs when Windows encounters a critical failure it cannot recover from safely. The system halts to prevent data corruption or hardware damage. On Windows 10, the blue screen typically displays:
- A sad face emoji and the message: "Your PC ran into a problem and needs to restart. We're just collecting some error info, and then we'll restart for you."
- A STOP code such as
SYSTEM_THREAD_EXCEPTION_NOT_HANDLED,IRQL_NOT_LESS_OR_EQUAL,MEMORY_MANAGEMENT,CRITICAL_PROCESS_DIED, orKERNEL_SECURITY_CHECK_FAILURE. - A QR code (on newer builds) linking to Microsoft support for that specific code.
- A fault module name (e.g.,
ntoskrnl.exe,nvlddmkm.sys,ataport.sys).
If your computer keeps blue screening on Windows 10, the first step is always to capture the STOP code and the faulting module. Everything else flows from that information.
Step 1: Capture and Decode the STOP Code
During the BSOD, photograph the screen with your phone before the PC restarts. You need:
- The STOP code (e.g.,
0x0000001Eor the text version likeKMODE_EXCEPTION_NOT_HANDLED). - The faulting file name (listed after the STOP code, e.g.,
nvlddmkm.sys= NVIDIA driver).
After restart, check the Windows Event Log and minidump files:
- Press Win + X → select Event Viewer.
- Navigate to Windows Logs → System.
- Filter by Error and look for events with Source
BugCheckorKernel-Power(Event ID 41). - Minidump files are stored at
C:\Windows\Minidump\— these are the gold standard for BSOD analysis.
Common STOP codes and their primary causes:
| STOP Code | Common Cause |
|---|---|
| IRQL_NOT_LESS_OR_EQUAL (0x0000000A) | Driver accessing invalid memory address |
| MEMORY_MANAGEMENT (0x0000001A) | Faulty RAM or memory corruption |
| SYSTEM_THREAD_EXCEPTION_NOT_HANDLED | Driver crash (check faulting .sys file) |
| CRITICAL_PROCESS_DIED (0x000000EF) | Core Windows process terminated unexpectedly |
| KERNEL_SECURITY_CHECK_FAILURE | Memory corruption, often driver or malware |
| PAGE_FAULT_IN_NONPAGED_AREA (0x00000050) | Faulty RAM, driver, or corrupted page file |
| NTFS_FILE_SYSTEM (0x00000024) | Hard drive / SSD filesystem corruption |
| WHEA_UNCORRECTABLE_ERROR | Hardware error: CPU, RAM, or overheating |
Step 2: Run System File Checker and DISM
Corrupted Windows system files are a very common cause of recurring BSODs. Run these commands in an elevated Command Prompt (right-click Start → Command Prompt (Admin) or Windows PowerShell (Admin)):
sfc /scannow
Wait for the scan to complete (5-15 minutes). If it reports "Windows Resource Protection found corrupt files but was unable to fix some of them", run DISM first to repair the repair source:
DISM /Online /Cleanup-Image /RestoreHealth
Then re-run sfc /scannow. Restart the PC after completion.
Step 3: Update or Roll Back Drivers
Drivers are the #1 software cause of Windows 10 BSODs. The faulting .sys file name on the blue screen tells you which driver to target:
nvlddmkm.sys→ NVIDIA graphics driveratikmdag.sys/amdkmdag.sys→ AMD graphics driveriaStorA.sys→ Intel Rapid Storage Technology driverntoskrnl.exe→ Usually RAM, overclocking, or a driver conflict (not the kernel itself)win32kfull.sys→ Windows graphics subsystem (often a display driver issue)
To roll back a driver:
- Press Win + X → Device Manager.
- Right-click the suspect device → Properties → Driver tab.
- Click Roll Back Driver if available.
To update all drivers, use Windows Update (Settings → Update & Security → View Optional Updates → Driver Updates) or download directly from the manufacturer's website (NVIDIA, AMD, Intel, Dell, HP, Lenovo, etc.).
Step 4: Test Your RAM
If the STOP code is MEMORY_MANAGEMENT, PAGE_FAULT_IN_NONPAGED_AREA, or the BSODs are completely random with different codes each time, RAM is a prime suspect.
Built-in Windows Memory Diagnostic:
- Press Win + R → type
mdsched.exe→ Enter. - Choose Restart now and check for problems.
- The tool runs on reboot. Check results in Event Viewer → Windows Logs → System, filtering for Source
MemoryDiagnostics-Results.
For more thorough testing, boot from a USB drive running MemTest86 (free, open-source) and run at least 2 full passes. Any errors = faulty RAM that needs replacement.
Step 5: Check Your Hard Drive or SSD
Storage failures cause BSODs with codes like NTFS_FILE_SYSTEM, PAGE_FAULT_IN_NONPAGED_AREA, and 0x0000007A (KERNEL_DATA_INPAGE_ERROR).
Run Check Disk:
chkdsk C: /f /r /x
(You'll be prompted to schedule this on next restart — type Y and restart.)
Also check your drive's S.M.A.R.T. status using CrystalDiskInfo (free) or in PowerShell:
Get-PhysicalDisk | Get-StorageReliabilityCounter | Select-Object DeviceId, ReadErrorsTotal, WriteErrorsTotal, Temperature
Step 6: Check for Overheating
Thermal issues cause WHEA_UNCORRECTABLE_ERROR and random BSODs under load. Use HWMonitor or Core Temp to monitor CPU/GPU temperatures. Safe operating ranges:
- CPU: below 85°C under full load
- GPU: below 90°C under full load
If temperatures are too high: clean dust from vents and fans, reapply thermal paste (for laptops that are 2+ years old), and ensure the device is on a hard flat surface.
Step 7: Analyze Minidump Files with WinDbg
For recurring BSODs with no obvious cause, minidump analysis with WinDbg gives definitive answers:
- Install WinDbg from the Microsoft Store or Windows SDK.
- Open WinDbg → File → Open Crash Dump → navigate to
C:\Windows\Minidump\→ open the most recent.dmpfile. - In the command window, type:
!analyze -v - Look for MODULE_NAME, FAULTING_MODULE, and STACK_TEXT in the output.
This output will directly name the driver or process responsible for the crash.
Step 8: Perform a System Restore or Reset
If BSODs started after a Windows Update or software installation:
- Press Win + R → type
rstrui.exe→ follow the wizard to a restore point before the BSODs began.
If no restore point is available and nothing else works:
- Go to Settings → Update & Security → Recovery.
- Under Reset this PC, click Get started.
- Choose Keep my files (safest option) or Remove everything for a clean slate.
Special Case: Laptop Keeps Blue Screening on Battery
If your laptop keeps blue screening specifically on battery power, the issue is often:
- A failing battery causing voltage fluctuations (replace the battery).
- Power management driver conflicts — update the ACPI driver via Device Manager.
- Fast Startup causing hibernation corruption: disable via Control Panel → Power Options → Choose what the power buttons do → uncheck Turn on fast startup.
Frequently Asked Questions
# ============================================================
# Windows 10 BSOD Diagnostic & Fix Script
# Run in an ELEVATED PowerShell or Command Prompt window
# ============================================================
# --- 1. Check for recent BugCheck events in System log ---
Write-Host "=== Recent BSOD Events (Last 30 Days) ==="
Get-WinEvent -FilterHashtable @{LogName='System'; Id=1001; StartTime=(Get-Date).AddDays(-30)} -ErrorAction SilentlyContinue |
Select-Object TimeCreated, Message |
Format-List
# --- 2. List all minidump files with dates ---
Write-Host "`n=== Minidump Files ==="
Get-ChildItem -Path "C:\Windows\Minidump\" -Filter "*.dmp" -ErrorAction SilentlyContinue |
Sort-Object LastWriteTime -Descending |
Select-Object Name, LastWriteTime, @{N='SizeMB';E={[math]::Round($_.Length/1MB,2)}}
# --- 3. Run System File Checker ---
Write-Host "`n=== Running SFC (this may take 10-15 minutes) ==="
sfc /scannow
# --- 4. Run DISM health repair ---
Write-Host "`n=== Running DISM RestoreHealth (requires internet) ==="
DISM /Online /Cleanup-Image /RestoreHealth
# --- 5. Schedule Check Disk on C: drive ---
Write-Host "`n=== Scheduling CHKDSK on next restart ==="
echo Y | chkdsk C: /f /r /x
# --- 6. Check drive SMART reliability counters ---
Write-Host "`n=== Drive Reliability Counters ==="
Get-PhysicalDisk | ForEach-Object {
$disk = $_
$counters = $disk | Get-StorageReliabilityCounter
[PSCustomObject]@{
DiskNumber = $disk.DeviceId
Model = $disk.FriendlyName
ReadErrors = $counters.ReadErrorsTotal
WriteErrors = $counters.WriteErrorsTotal
Temperature = $counters.Temperature
Wear = $counters.Wear
}
} | Format-Table -AutoSize
# --- 7. List recently installed drivers (last 30 days) ---
Write-Host "`n=== Recently Installed or Changed Drivers ==="
Get-WinEvent -FilterHashtable @{LogName='System'; Id=7036; StartTime=(Get-Date).AddDays(-30)} -ErrorAction SilentlyContinue |
Where-Object { $_.Message -match 'driver' } |
Select-Object TimeCreated, Message -First 20 | Format-List
# --- 8. Check for pending Windows Updates (requires PSWindowsUpdate module) ---
# Uncomment the lines below if PSWindowsUpdate module is installed
# Install-Module PSWindowsUpdate -Force
# Get-WUList
# --- 9. Check CPU and memory usage (basic snapshot) ---
Write-Host "`n=== System Resource Snapshot ==="
$os = Get-CimInstance Win32_OperatingSystem
$cpuLoad = (Get-CimInstance Win32_Processor | Measure-Object -Property LoadPercentage -Average).Average
[PSCustomObject]@{
'CPU Load %' = "$cpuLoad%"
'Total RAM (GB)' = [math]::Round($os.TotalVisibleMemorySize/1MB,2)
'Free RAM (GB)' = [math]::Round($os.FreePhysicalMemory/1MB,2)
'Used RAM (GB)' = [math]::Round(($os.TotalVisibleMemorySize - $os.FreePhysicalMemory)/1MB,2)
'Last Boot Time' = $os.LastBootUpTime
} | Format-List
# --- 10. Export results to desktop for reference ---
Write-Host "`n=== Exporting summary to Desktop ==="
$reportPath = "$env:USERPROFILE\Desktop\BSOD_Diagnostic_Report_$(Get-Date -Format 'yyyyMMdd_HHmmss').txt"
(
"BSOD Diagnostic Report - $(Get-Date)",
"SFC and DISM were executed. Check output above for errors.",
"CHKDSK scheduled for next boot.",
"Review minidump files at C:\Windows\Minidump\ with WinDbg for deep analysis."
) | Out-File -FilePath $reportPath
Write-Host "Report saved to: $reportPath"
# ============================================================
# WinDbg Quick Reference (run inside WinDbg command window)
# Open dump: File -> Open Crash Dump -> C:\Windows\Minidump\*.dmp
# Then type:
# !analyze -v <- Full automated analysis
# lmvm <module_name> <- Show driver version info
# !process 0 0 <- List all processes at time of crash
# .bugcheck <- Show bugcheck codes
# ============================================================Error Medic Editorial
Error Medic Editorial is a team of senior DevOps engineers, SREs, and Windows systems administrators with combined decades of experience diagnosing OS-level failures, kernel panics, and hardware instability across enterprise and consumer environments. Our troubleshooting guides are built from real incident postmortems, manufacturer documentation, and hands-on lab testing — not guesswork.
Sources
- https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/bug-check-code-reference2
- https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/getting-started-with-windbg
- https://support.microsoft.com/en-us/windows/fix-blue-screen-errors-in-windows-1bea82dc-6a28-5acb-9e97-4bb87c8cfe27
- https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/sfc
- https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/dism-image-management-command-line-options-s14
- https://stackoverflow.com/questions/tagged/bsod
- https://www.memtest86.com/technical.htm