The Big Picture: Every Link in the Chain Matters
In Section 2 you met the files in the start-up chain. This section answers a practical question: what do you see when one of them goes wrong?
Corrupted means the file is there but its contents are damaged (for example, after a power cut during an update, a failing disk, or a bad driver). Missing means the file is gone (deleted, or the disk sector holding it is unreadable).
A useful rule: the earlier in the chain a file is used, the worse the symptom.
Early in the chain (fails before Windows is alive) → PC will not boot, error screen
Middle (kernel runs, but a core process fails) → blue screen or forced restart
Late (everything else is fine) → a program or the desktop fails
Warning: The tables below are for understanding. Do not delete or rename system files to "see what happens". Many of these experiments can leave a PC that will not start.
3.1 Per-File Failure Symptoms
The exact words on the screen vary by Windows version, PC maker and the exact kind of damage. Treat the wording and error codes below as typical examples, not promises.
Stage 1: Files used before Windows starts
| File | If missing or corrupted | What you typically see |
|---|---|---|
| BCD (boot menu data) | Boot manager cannot find Windows | Blue-style recovery screen: "Your PC/Device needs to be repaired", often with an error such as 0xc000000f and a note that the Boot Configuration Data is missing or has errors |
| bootmgfw.efi / bootmgr | Firmware cannot start Windows | "Boot Manager is missing", or "No bootable device", or a drop into recovery; may show a code like 0xc0000225 ("an unexpected error has occurred") |
| winload.efi / winload.exe | Boot manager runs, but the loader cannot | "Your PC needs to be repaired" with a message that winload.efi is missing or contains errors, often 0xc000000f or 0xc0000225 |
| ntoskrnl.exe | Loader cannot start the kernel | "Your PC needs to be repaired", naming \Windows\system32\ntoskrnl.exe as missing or corrupt |
| SYSTEM hive (registry file) | Kernel cannot read its driver list | "Windows failed to start" with a message along the lines of "the system registry file is missing or corrupt", or a blue screen on early boot (the exact words vary) |
A boot-start driver such as ntfs.sys or disk.sys | Kernel cannot read the disk | A blue screen, often with a stop code about being unable to access the boot device (for example INACCESSIBLE_BOOT_DEVICE) |
Stage 2: Files used while the system starts
| File | If missing or corrupted | What you typically see |
|---|---|---|
| hal.dll (on builds where it still matters) | Kernel cannot hide hardware differences | Boot error naming hal.dll, or a blue screen early on |
| smss.exe | First user-mode process cannot start | Blue screen very early in boot (a critical process died) |
| csrss.exe / wininit.exe | Core processes cannot start | Blue screen; reboot loop |
| services.exe | No services start | Blue screen or a PC that starts with almost nothing working |
| lsass.exe | Security cannot start | Windows stops and forces a restart (often with a warning that the PC will restart), possibly a restart loop |
| winlogon.exe | Sign-in cannot begin | Blue screen, or a black/blank screen with no sign-in box |
| SOFTWARE / SAM / SECURITY hive | Settings, accounts or policy unreadable | Odd errors, sign-in failures, or a failed boot (varies by which hive and how bad) |
Stage 3: Files used when programs and the desktop run
| File | If missing or corrupted | What you typically see |
|---|---|---|
| ntdll.dll | Nothing in user mode can run | Programs refuse to start; Windows usually cannot boot at all |
| kernel32.dll / kernelbase.dll | Programs cannot load | Almost every program fails to start with "The code execution cannot proceed because kernel32.dll was not found" or "The application was unable to start correctly (0xc000007b)" style messages |
| user32.dll / gdi32.dll | Windows cannot be drawn | Programs fail with a missing-DLL message; the desktop may not draw |
| advapi32.dll | Registry and security calls fail | Many programs and services fail to start |
| explorer.exe | No shell | Black screen with a mouse pointer and no taskbar. Ctrl + Shift + Esc still opens Task Manager, and File → Run new task can start tools |
| dwm.exe | No window composition | Screen flashes; Windows usually restarts it. If it keeps failing you may see a blank or flickering screen |
| svchost.exe | Services cannot be hosted | Many services (network, update, audio) fail; programs that need them do not work |
| A non-critical DLL (for example one used by one app) | Only that app breaks | "DLL not found" for that program only |
3.2 Why Windows Protects These Files (WFP/WRP)
The problem: Old Windows let any installer replace system files. A badly written program would overwrite a good kernel32.dll with an older one, and it would break other programs. This caused the infamous "DLL Hell": programs breaking each other by swapping shared files.
The solution: Windows protects its own files with layers:
1. Windows File Protection (WFP) — the old way. Windows 2000 to XP watched critical files and quietly put back the original if something replaced them. It worked but was weak and easy to bypass.
2. Windows Resource Protection (WRP) — the modern way. Since Windows Vista, WRP protects critical files, folders and registry keys. Instead of fixing them after the fact, it prevents them from being changed in the first place, by using permissions (see below). The protected files have a known good copy in the component store (WinSxS, Section 1.4).
3. TrustedInstaller. Protected files are owned by a special account called TrustedInstaller (the Windows Modules Installer service). Only that account can change or delete them, and only Windows Update and servicing code run as it. Even a normal Administrator gets "Access denied" or "You need permission from TrustedInstaller".
File: C:\Windows\System32\kernel32.dll
Owner: NT SERVICE\TrustedInstaller
Rights: TrustedInstaller = Full control
Administrators = Read & execute only
Users = Read & execute only
You can read these permissions safely with the
icaclscommand or PowerShell'sGet-Acl(see the lab). That does not change anything.
Why even Administrators are blocked: A user with admin rights can still run harmful software by accident. Keeping the system files under a separate account means that mistake cannot easily break Windows. It is a safety belt for the whole system.
Taking ownership: do not. There are ways to take ownership of a system file and give yourself permission (using takeown and icacls with change options). Do not do this to system files. It removes the protection, and a single wrong deletion can stop the PC from booting. If a file looks wrong, repair it with the tools in 3.3, which put the genuine file back.
Other protections that work together:
| Protection | What it does |
|---|---|
| Driver signing | Kernel-mode drivers must have a valid digital signature (Chapter 13) |
| Secure Boot | The firmware only starts boot files that are properly signed (Chapter 6) |
| UAC | Even admins must approve changes that affect the system |
| Component store | Keeps clean copies to repair from |
3.3 The Repair Tools
When something is damaged, use the repair tools in this order, from least to most drastic:
| Tool | What it does | When to use |
|---|---|---|
sfc /scannow | System File Checker. Compares each protected file with the good copy in the component store and replaces damaged ones. Run from an administrator Command Prompt. Can take several minutes. | First step when Windows starts but acts oddly |
DISM /Online /Cleanup-Image /RestoreHealth | Deployment Image Servicing and Management. Repairs the component store itself (the source sfc copies from), usually downloading good files from Windows Update. Needs admin and a connection. | When sfc says it found damage it could not fix |
| Windows Recovery Environment (WinRE) | A small separate Windows on a recovery partition. Starts automatically after repeated failed boots. Holds Startup Repair, Command Prompt, System Restore and Reset this PC. | When Windows will not start |
| Startup Repair | Automatically looks for and fixes common boot problems, such as a damaged BCD | Boot errors |
bootrec | A command in WinRE: bootrec /fixmbr, bootrec /fixboot and bootrec /rebuildbcd repair the boot sector and rebuild the boot menu data. (On UEFI PCs the steps differ; the bcdboot tool is often used to rebuild files on the ESP.) | A damaged BCD or boot files |
| System Restore | Rolls system files and registry back to an earlier restore point (kept in System Volume Information, Section 1.11). Your documents are not touched. | A recent update or driver broke things |
| Reset this PC | Reinstalls Windows, with the choice to keep your files or remove everything | Last resort before a clean install |
The typical repair plan:
Windows starts but is odd or slow
→ sfc /scannow
→ still broken? DISM /Online /Cleanup-Image /RestoreHealth, then sfc again
→ still broken? System Restore
→ still broken? Reset this PC (keep my files)
Windows does not start
→ Startup Repair (WinRE)
→ bootrec / bcdboot (WinRE Command Prompt)
→ System Restore (from WinRE)
→ Reset this PC, or reinstall
Read-only versions you can use safely:
sfc /verifyonly (admin; scans, repairs nothing)
DISM /Online /Cleanup-Image /CheckHealth (admin; quick: reports if damage was flagged)
sfc /verifyonly only scans and reports. DISM ... /CheckHealth only checks whether the component store was already marked as damaged; it does not scan deeply (that is /ScanHealth) and does not fix anything (that is /RestoreHealth).
Where the results go: sfc writes its details to C:\Windows\Logs\CBS\CBS.log; DISM writes to C:\Windows\Logs\DISM\dism.log.
Always keep backups. Repair tools fix Windows; they cannot bring back your documents. Back up your personal files (Chapter 19 explains the file systems and recovery limits).
3.4 Putting It All Together: A Quick Story
You turn on your PC and see "Your PC needs to be repaired. File: \Windows\system32\winload.efi". What does that tell you?
- The firmware worked (you got past POST).
- The boot manager worked (it is showing you a message).
- The loader (
winload.efi) is the link that failed. - So the problem is early in the chain, and Startup Repair or
bootrecfrom WinRE is where to start. A freshsfcfrom inside Windows is not possible, because Windows is not running.
Compare: if instead you get a black screen with a mouse pointer, the chain got all the way to winlogon.exe, and the shell (explorer.exe) is the problem. Press Ctrl + Shift + Esc and run a new task.
Reading symptoms backwards through the chain is the skill that experienced technicians use.
Summary
| Term | Plain meaning |
|---|---|
| Missing vs corrupted | File gone vs file damaged |
| Earlier fails, worse symptom | Boot files break the whole start; late files break one thing |
No ntoskrnl.exe / winload | "Your PC needs to be repaired" |
No explorer.exe | Black screen, Task Manager still works |
lsass / csrss fatal | Forced restart / blue screen |
| WFP | Old system that put files back after changes |
| WRP | Modern protection using permissions |
| TrustedInstaller | The account that owns system files; blocks even admins |
sfc /scannow | Replace damaged protected files from the good copy |
DISM /RestoreHealth | Repair the good copy itself |
WinRE / Startup Repair / bootrec | Fix a PC that will not boot |
| System Restore / Reset this PC | Roll back / reinstall |