STOP 0x000000EF — CRITICAL_PROCESS_DIED
A process marked critical exited. The kernel names the process in the dump, and which one it was decides the fix entirely.
What you see
Bluescreen with CRITICAL_PROCESS_DIED, sometimes in a loop at boot, sometimes at random during use.
What is actually wrong
Corrupt system files, a failing disk, or a third-party service crashing something like svchost, wininit or services.exe.
Codes and articles
Fixes (2)
Repair the system files and check the disk
Windows starts, even if only in Safe Mode.
Repair the component store, then the system files, in that order.
DISM /Online /Cleanup-Image /RestoreHealthsfc /scannow
SFC repairs from the component store, so repairing the store first is what makes SFC able to fix anything.
Check the disk's own health before assuming software.
Get-PhysicalDisk | Format-Table FriendlyName, MediaType, HealthStatus, OperationalStatus -AutoSizeGet-StorageReliabilityCounter -PhysicalDisk (Get-PhysicalDisk) | Format-Table DeviceId, Wear, ReadErrorsTotal, UncorrectedReadErrors -AutoSize
Schedule a full disk check.
chkdsk C: /f /rFind which process died — the dump names it.
Get-WinEvent -FilterHashtable @{LogName='System'; Id=1001} -MaxEvents 5 | Format-List TimeCreated, MessageIf a third-party service is implicated, disable it and test.
Get-Service | Where-Object { $_.Status -eq 'Running' } | Select-Object Name, DisplayName | Sort-Object DisplayName
Break the boot loop from WinRE
The machine loops before reaching a desktop.
Reach WinRE and open Command Prompt. Identify the Windows volume with diskpart.
Check the disk first.
chkdsk D: /f /rRun the offline system file check.
sfc /scannow /offbootdir=D:\ /offwindir=D:\WindowsRevert any pending update transaction, which is a frequent cause of the loop.
DISM /Image:D:\ /Cleanup-Image /RevertPendingActionsIf it still loops, disable automatic restart so the bugcheck stays on screen long enough to read which process died.
bcdedit /store D:\Boot\BCD /set {default} recoveryenabled Nobcdedit /store D:\Boot\BCD /set {default} bootstatuspolicy IgnoreAllFailures
This stops WinRE hijacking every boot, which otherwise hides the actual error text you need.
As a last resort before rebuilding, use System Restore from WinRE if a restore point predates the fault.
Related faults
Where this stops. This write-up was written and checked by hand. It says what each step changes, how to confirm it worked and how to reverse it, and anything destructive is flagged before you reach it. If it does not match what your machine is doing, search the Support Centre for the exact code or message — and when something needs a person, get in touch.