STATUS_CORRUPT_SYSTEM_FILE (0xC00002C4) — Real Fix
Windows boots to a black screen or hangs after a failed update or disk error. The corrupt system file gets flagged and replaced, but the replacement often fails too.
When This Error Hits
You're staring at a black screen or a blue recovery menu that says STATUS_CORRUPT_SYSTEM_FILE with code 0xC00002C4. This usually happens right after a Windows Update install fails, or when your machine lost power during a system file patch. The exact message is: "The system file %1 has become corrupt and has been replaced." But here's the kicker — the replacement file is also corrupt, so Windows can't load.
I've seen this on Windows 10 20H2 through 22H2, and on Server 2019 after a botched cumulative update. The trigger is almost always a sudden shutdown during trustedinstaller.exe writing to C:\Windows\System32.
Root Cause
What's actually happening here is a failure in the Windows Component Store, also known as WinSxS. When Windows detects a system file like ntdll.dll or kernel32.dll is corrupt, it tries to replace it from a cached copy in WinSxS. But if that cached copy also got corrupted — say, from a bad disk sector or interrupted servicing — then the replacement writes another bad file. The system then panics at boot because the signature check fails.
The error code 0xC00002C4 is the kernel's way of saying "I checked the replacement, it's no good, and I'm not going to trust it." It sits in a boot loop until you manually fix the store.
The Fix — Step by Step
Skip the automatic repair tool; it won't touch store corruption. You need the Windows Recovery Environment (WinRE).
Step 1: Boot into WinRE
- Force shutdown your PC by holding the power button.
- Boot and immediately hold F11 (or Shift + restart loop twice).
- Select Troubleshoot > Advanced options > Command Prompt.
Step 2: Identify the Broken Drive
At the command prompt, type:
diskpart
list volume
Find your Windows volume — it's usually C:, but in WinRE it might be D: or E:. Note the letter. Then exit diskpart:
exit
Step 3: Run DISM with RestoreHealth
This is where the real fix lives. DISM can pull a fresh copy from Windows Update if you have internet. Run:
dism /image:D:\ /cleanup-image /restorehealth
(Replace D: with your actual Windows drive letter.)
If you don't have internet (or it fails), you'll need a Windows ISO on a USB. Mount it and run:
dism /image:D:\ /cleanup-image /restorehealth /source:E:\sources\install.wim /limitaccess
Where E: is your USB drive.
Why step 3 works: DISM repairs the component store itself. It compares every manifest in WinSxS against the source and replaces damaged payloads. Without a healthy store, SFC (next step) has nothing good to copy from.
Step 4: Run SFC
Now that the store is fixed, scan system files:
sfc /scannow /offbootdir=D:\ /offwindir=D:\Windows
This replaces the corrupt file that triggered the original error. SFC will report success or tell you it found corrupt files and replaced them.
Step 5: Fix Boot Configuration
Sometimes the corrupt file breaks BCD entries. Run:
bootrec /fixmbr
bootrec /fixboot
bootrec /rebuildbcd
Say Yes when it asks to add the installation.
Step 6: Check Disk for Bad Sectors
If the corruption came from a dying drive, it'll happen again. Run:
chkdsk D: /f /r
This takes a while — let it finish. If it reports many bad sectors, replace the drive.
Step 7: Reboot
Type exit and hit Continue (or restart). If the error is gone, you're done.
What to Check If It Still Fails
Three things:
- Your Windows version is too old — If you're on a build past end-of-support (like 1507–1809), DISM may not have matching source files. You'll need to install a newer build from ISO.
- Drive is physically dead — If chkdsk found tons of bad sectors, replace the disk. No software fix can undo hardware failure.
- Third-party antivirus hooks — Some AV tools lock system files during replacement. Boot into Safe Mode from WinRE (F4 at boot options) and retry steps 3 and 4.
If none of this works, you're looking at a clean install. But I've fixed dozens of machines with exactly this sequence — it's the standard approach, and it works.
Was this solution helpful?