Fix it now
The firmware found and ran the boot manager; what failed next was loading something it needs. The file name on the error screen decides everything. Microsoft documents three quite different causes behind 0xC0000225, and rebuilding the boot store only addresses one of them.
diskpart
list volume
exit
bootrec /scanos
bcdedit /store S:\EFI\Microsoft\Boot\BCD /enum /v
- Read the File: line on the error screen before anything else.
\Boot\BCDor\EFI\Microsoft\Boot\BCDmeans the boot store.\Windows\System32\winload.exemeans the loader. Anything under\Windows\System32\drivers\means a driver, and no BCD work will help. - Identify the Windows volume and the small FAT32 system partition with
diskpartandlist volume. In recovery the Windows volume is rarely C:. - If the screen named the store, confirm the installation is still found with
bootrec /scanos, then check thatdeviceandosdevicename the real Windows partition in thebcdedit /store ... /enum /voutput. - Rewrite the boot files against the correct volume:
bcdboot X:\Windows /s S: /f UEFI, where X is the Windows volume and S is the system partition. - If the screen named a driver, this is a file replacement job instead: run
chkdsk X: /f, then find a good copy underX:\Windows\WinSxSwithdir <name>.sys /sand copy it intoX:\Windows\System32\Drivers.
Startup Repair is worth one attempt before any of this. It fixes a fair share of these and costs a few minutes, and it will tell you nothing useful if it fails.
If the machine now starts, you can stop here. If not, the next section explains what the boot manager is looking for and why each of these codes appears.
Why it happens
On a UEFI machine the firmware loads the Windows boot manager from a small FAT32 partition set aside for that purpose. The boot manager reads a store of boot configuration data – a registry-format file on that same partition – which holds one entry per bootable operating system. Each entry records which volume holds the loader and where on that volume it sits. The loader then loads the kernel and the boot-start drivers.
0xC000000F is the boot manager reporting that the application or operating system could not be loaded because a required file is missing or contains errors. Microsoft’s documented causes are the boot configuration data being corrupt, the device and osdevice references in it being missing or unknown, or the binary named on the screen being absent from the disk. Note that the third of those has nothing to do with the store at all.
0xC0000225 is the one that is routinely misread. Microsoft publishes it as the status or object not being found, and lists three causes: a missing or corrupted system binary under \Windows\System32\drivers, corrupted boot configuration data or an incorrectly prepared virtual hard disk, and corruption of the registry hive at \Windows\System32\config\system. Two of the three are not BCD problems, which is why so many readers rebuild the store, watch it succeed, and get the same screen back.
0xC0000034 is narrower: the object name is not found. Where 0xC000000F says a file could not be read, this says the entry being looked up is not in the store. That is the difference between a damaged store and an intact store whose entries point somewhere the volume no longer is – which is why this one so often follows adding a drive, cloning to a new disk or resizing partitions.
The screen names a driver, not the store
You have this one if The File: line points at something under \Windows\System32\drivers\, ending in .sys.
- Run
chkdsk X: /fagainst the Windows volume, which is Microsoft’s first documented step here. - Locate a good copy:
dir <name>.sys /sfrom the root of the Windows volume finds the versions held in WinSxS. - Rename the damaged file to
<name>.sys.old, then copy the newest WinSxS copy intoX:\Windows\System32\Drivers. - Restart. If the same file fails again, treat the disk as suspect rather than repeating the copy.
The boot entry points at a volume that has moved
You have this one if 0xC0000034, or a bcdedit /enum showing device or osdevice as unknown or naming a partition with no Windows folder. Common after adding or removing a drive, cloning, or a firmware change.
- Disconnect any drive added just before the failure and try again; that alone often restores the original arrangement.
- Confirm the layout with
diskpartandlist volume. - Either correct the entry in place with
bcdedit /store <store> /set {<id>} osdevice partition=X:and the matchingdeviceline, or rewrite the files withbcdboot X:\Windows /s S: /f UEFI. - Put Windows Boot Manager back at the top of the firmware boot order.
The boot configuration store is damaged
You have this one if The screen names \Boot\BCD or \EFI\Microsoft\Boot\BCD, often after an unclean shutdown, a failed update, or a third-party boot manager being installed or removed.
- Run
bootrec /scanosto confirm the Windows installation is still detected. - Back the store out of the way first, as Microsoft documents:
bcdedit /export c:\bcdbackup, thenattrib c:\boot\bcd -r -s -h, thenren c:\boot\bcd bcd.old. - Run
bootrec /rebuildbcdand add the installation it finds. - If it reports no installations, run
bcdboot X:\Windows /s S: /f UEFIinstead, which writes a fresh store rather than repairing the old one.
On UEFI machines bootrec /fixboot often returns access denied. Rather than trying to force it, use bcdboot, which is the documented way to write boot files for a named Windows installation.
The registry hive behind the boot, not the boot files
You have this one if 0xC0000225 where the screen mentions the system registry file, or where every BCD repair succeeds and the same screen returns.
- Copy
X:\Windows\System32\configaside in full before touching it. - Try System Restore from Advanced options first; it replaces the hives as part of the restore.
- If there is no restore point, Microsoft’s documented repair is to copy the files from
config\regbackover those inconfig– which only helps if they are not 0 KB. - Run
chkdsk X: /f /rafterwards, because a hive that goes bad again means the disk is the unfixed part.
Full reference
Matching the screen to the work
| What the File: line says | What it is | Where to start |
|---|---|---|
\Boot\BCD or \EFI\Microsoft\Boot\BCD |
The boot configuration store | bootrec /scanos, then rebuild or bcdboot |
\Windows\System32\winload.exe or winload.efi |
The OS loader | Check device and osdevice in the store |
\Windows\System32\drivers\<name>.sys |
A boot-start driver | chkdsk, then replace the file from WinSxS |
\Windows\System32\config\system |
The SYSTEM registry hive | System Restore, then regback |
| Nothing, or a generic message | Unknown | bcdedit /enum first; do not start deleting partitions |
The UEFI rebuild, step by step
Run this from the recovery command prompt. Pick the disk and the small FAT32 system partition from what list disk and list partition show you, and substitute the real Windows volume letter in the last line.
diskpart
list disk
select disk 0
list partition
select partition 1
assign letter=S
exit
bcdboot C:\Windows /s S: /f UEFI
bcdboot takes the Windows directory as its source, /s as the system partition volume letter and /f as the firmware type – UEFI, BIOS or ALL. Use ALL when you are genuinely unsure which the machine is using; it writes both sets.
Repairing the entries rather than replacing the store
Microsoft’s own documented repair for an unknown device or osdevice is to edit the store rather than rebuild it. On a UEFI machine the store lives at \EFI\Microsoft\Boot\BCD on the system partition; on a legacy installation it is \Boot\BCD.
| Command | What it does |
|---|---|
bcdedit /store <path> /enum /v |
Lists every entry with full identifiers rather than friendly names |
bcdedit /store <path> /set {bootmgr} device partition=S: |
Points the boot manager entry at the system partition |
bcdedit /store <path> /set {<id>} device partition=X: |
Points the loader entry at the Windows volume |
bcdedit /store <path> /set {<id>} osdevice partition=X: |
Points the operating system device at the Windows volume |
bcdedit /store <path> /set {<id>} bootstatuspolicy IgnoreAllFailures |
Stops the machine looping into automatic repair so you can read the real error |
Formatting or recreating the system partition removes the boot files for every operating system on the machine, not only Windows. On a dual boot machine, or one with a vendor recovery entry, write down what is there before you touch it and expect to restore the other entries through their own tools afterwards.
When the disk is not being seen at all
- If
diskpartin recovery lists no disks, no boot repair applies. Return any storage mode setting in firmware to what it was, since a change there prevents the disk being reached. - Reseat cables or the drive module and confirm the disk appears in firmware setup.
- Run the drive vendor’s diagnostic from bootable media if the disk is detected but behaving oddly.
- Treat a disk no tool can see as a hardware failure and move to data recovery rather than boot repair.
- 0x00000053, NO_BOOT_DEVICE, sometimes appears alongside. Microsoft publishes only the name for that bug check, and notes it appears very infrequently, so read it as a label rather than as a diagnosis.
After the repair
Check the firmware boot order before you call it done. A machine that boots once from a repair and then goes back to a network boot attempt has correct boot files and a firmware entry that was never updated. Add or promote the Windows Boot Manager entry in firmware setup, and replace the CMOS battery if the machine keeps losing its settings between power cycles.
Every code this article covers
| Code | What it points at | Source |
|---|---|---|
0xC000000F |
The application or operating system could not be loaded because a required file is missing or contains errors. Documented causes are a corrupt BCD, missing or unknown device and osdevice references, or the named binary being absent | Microsoft Learn |
0xC0000225 |
The status or object is not found. Microsoft publishes three causes: a missing or corrupt driver binary, corrupt boot configuration data, and corruption of the SYSTEM registry hive | Microsoft Learn |
0xC0000034 |
STATUS_OBJECT_NAME_NOT_FOUND: the object name is not found, so the entry being looked up is absent rather than damaged | Microsoft Learn |
0x00000053 |
Microsoft publishes the name NO_BOOT_DEVICE and nothing further; the bug check page carries no description, cause or resolution and notes it appears very infrequently | Microsoft Learn |
Confirm the fix worked
- Start the machine three times from cold and confirm it reaches Windows each time without intervention.
bcdedit /enumfrom inside Windows shows the default entry naming the correct volume and loader path.- The firmware boot order lists Windows Boot Manager first, with no stale entries left behind.
- If a driver file was replaced,
sfc /scannowreports no integrity violations. - Create a recovery drive from within Windows, so the next incident is a shorter one.
Questions people ask about this
Will rebuilding the boot files erase my data?
No. bootrec and bcdboot write to the small system partition, not to the volume holding your files. The risk in this procedure is the partition work around it – formatting or recreating a partition is where data is lost, not the boot repair.
Does this need a new Windows licence?
No. This is a boot repair, not a reinstallation, and even if you eventually reinstall, the existing entitlement still covers that machine.
Why did Startup Repair say it could not fix the problem?
It handles common patterns and gives up quickly on anything else, particularly where the disk layout has changed or a second operating system is involved. Its failure is not a verdict on the machine; the manual bootrec and bcdboot route fixes many cases it will not.
I rebuilt the BCD and got the same screen. What did I miss?
Probably the file name. Microsoft lists a missing or corrupt driver binary and a corrupt SYSTEM hive alongside the BCD as causes of 0xC0000225. If the screen names a .sys file or the system registry file, the store was never the problem.
I dual boot with Linux and now only Windows starts.
Rebuilding the Windows boot files makes Windows Boot Manager the firmware’s first entry. The other installation is untouched on disk; restore its boot loader from its own live media and then set the boot order you want.
