A Blue Screen of Death (BSOD) is the Windows kernel’s emergency halt mechanism. When kernel-mode code encounters an unrecoverable exception, the operating system stops execution to prevent memory corruption or hardware damage.
For engineers and system administrators, these errors are not random glitches. They are diagnostic signatures. In this protocol, we will focus on resolving driver conflicts (like DRIVER_IRQL_NOT_LESS_OR_EQUAL or SYSTEM_THREAD_EXCEPTION_NOT_HANDLED) using professional debugging tools.
1. Locating and Retrieving Memory Dumps
When Windows crashes, it writes state information to a dump file. By default, Windows is configured to write a Minidump (a small physical dump containing registers, processor state, and loaded drivers list) or a Kernel Memory Dump (larger, containing the kernel space memory).
Search these paths on the affected system root:
- Minidump Directory:
C:\Windows\Minidump\(typically namedMiniMMDDYY-XX.dmp) - Full Kernel Dump:
C:\Windows\MEMORY.DMP
[!IMPORTANT] If no dump files exist, verify that your paging file is active on the boot drive and that Windows is configured to write dumps. Go to
sysdm.cpl> Advanced > Startup and Recovery Settings and select Write debugging information to Small memory dump.
2. Analyzing Dump Files with WinDbg
To trace the specific driver module triggering the crash, we utilize the Microsoft Windows Debugger (WinDbg).
Setting Up symbols
WinDbg requires access to official Microsoft Symbol Files (.pdb) to map binary memory offsets to human-readable function names:
- Open WinDbg.
- Go to File > Settings > Debugging settings.
- Set the Symbol path to:
srv*https://msdl.microsoft.com/download/symbols
Loading and Running the Analysis
Open the .dmp file in WinDbg (Ctrl + O) and locate the Command prompt window inside the GUI. Run the primary analysis command:
!analyze -v
This runs the automated debugger heuristics. The output will isolate key parameters:
DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1)
An attempt was made to access a pageable address at too high an IRQL.
Arguments:
Arg1: 0000000000000028, referenced address
Arg2: 0000000000000002, IRQL (Interrupt Request Level)
Arg3: 0000000000000000, bitfield
Arg4: fffff80455d312a0, address which referenced memory
...
MODULE_NAME: nvlddmkm
IMAGE_NAME: nvlddmkm.sys
FAILURE_BUCKET_ID: AV_nvlddmkm!unknown_function
In the output block above, IMAGE_NAME tells us the driver binary responsible.
Common Conflict-Prone Drivers
| Image Name | Component / Device | Common Solution |
|---|---|---|
nvlddmkm.sys |
NVIDIA Graphics Driver | Run Display Driver Uninstaller (DDU) and clean install WHQL drivers. |
amdkmdag.sys |
AMD Radeon Graphics | Run DDU and install clean AMD Software drivers. |
rtwlane.sys |
Realtek Wireless LAN | Download OEM adapter package, purge network stack in Device Manager. |
ntoskrnl.exe |
Windows Kernel Core | Usually a false positive. Memory instability or disk sector corruption is triggering a crash here. Run MemTest86. |
3. Isolating Drivers with Driver Verifier
If crashes are intermittent and no single driver is blamed in standard minidumps, use the built-in Driver Verifier to stress-test third-party drivers.
[!WARNING] Driver Verifier can trigger a boot loop if it catches a buggy startup driver. Make sure you have a system restore point or know how to enter Safe Mode to disable Verifier via Command Prompt.
- Open Command Prompt as Administrator and type:
verifier - Choose Create custom settings (for code developers).
- Check these tests:
- I/O Verification
- Force IRQL Checking
- Pool Tracking
- Deadlock Detection
- Choose Select driver names from a list and check all non-Microsoft drivers.
- Reboot the system.
If a driver violates kernel rules, Windows will instantly BSOD. Note the driver name and error code. To disable Verifier after finding the bug:
verifier /reset
4. Remediation: Purging in Safe Mode
Once the culprit driver is isolated (e.g., nvlddmkm.sys), boot into Safe Mode to remove the software lock:
- Hold
Shiftwhile clicking Restart in the Start Menu. - Go to Troubleshoot > Advanced Options > Startup Settings > Restart.
- Press
4orF4to enable Safe Mode.
Once booted into Safe Mode, purge the drivers:
Graphics Driver Clean Up
For GPUs, run Display Driver Uninstaller (DDU) to wipe registry entries, scheduled tasks, and local system files that manual uninstallers leave behind.
Manual Driver Purging
For non-graphics drivers, use the Command Line to list and clean up third-party drivers:
# List all OEM (third-party) drivers registered in the driver store
pnputil /enum-drivers
# Locate the published name (e.g., oem32.inf) and delete it
pnputil /delete-driver oem32.inf /uninstall /force
Reboot into normal mode and download the latest stable, WHQL-certified driver package directly from the hardware vendor.