You rebooted, and now Windows either won't boot or throws STATUS_CTX_PD_NOT_FOUND (0xC00A0003) at you. What's actually happening here is that the storage stack is trying to talk to a disk through a protocol driver — a filter driver that sits between the disk class driver and the physical device — and that driver isn't on disk or isn't loaded. The kernel can see the hardware. It just doesn't have the translator to speak to it.
This shows up most often on machines where someone flipped the SATA mode in BIOS, updated firmware, or cloned a drive from an old system to a new one. It also hits Windows Server boxes running Storage Spaces after a controller driver update goes sideways. Let's go through the causes in order of how often I actually see them.
Cause 1: Intel RST/VMD mode is enabled but the driver isn't present
This is the big one. By far. On any modern Dell, Lenovo, HP, or Asus with an Intel chipset, there's a BIOS setting called SATA Operation or VMD Controller. When it's set to RAID On or VMD Enabled (the factory default on most business laptops), Windows needs iaStorAC.sys or iaStorVD.sys to see the drive. If you installed Windows with the mode set to AHCI and later flipped it to RAID, or you swapped a drive from an AHCI machine into a RAID-configured one, Windows boots, can't find the protocol driver, and throws 0xC00A0003 before it can even mount the volume.
The real fix depends on whether you can still boot:
If Windows still boots sometimes
Boot into Safe Mode once. Windows will fall back to a generic storage driver and you can preload the correct one. Open an elevated command prompt and run:
dism /online /add-driver /driver:"C:\Drivers\iaStorAC.inf" /install
Then force the storage controller to pick it up. The reason step 3 works is that Windows only binds the new driver at boot — it won't hot-swap the boot-critical driver while the system is running.
pnputil /enum-drivers | findstr /i "iastor"
reg add HKLM\SYSTEM\CurrentControlSet\Services\iaStorAC\Startup /t REG_DWORD /d 0 /f
bcdedit /set safeboot minimal
shutdown /r /t 0
When it comes back up in Safe Mode, remove the safeboot flag with bcdedit /deletevalue safeboot and reboot normally. The driver will load.
If Windows won't boot at all
Flip the BIOS setting back to AHCI. Windows will boot. Then follow the steps above to install the RST driver before you switch the mode back. This is the correct order and it saves you a reinstall.
If you're on an 11th-gen Intel or newer with VMD enabled, you also need the VMD driver — that'siaStorVD.sysin theiaStorVDpackage, notiaStorAC. Grabbing the wrong one is a common mistake.
Cause 2: Storage Spaces or a filter driver is missing after an OS upgrade
Windows 11 24H2 stripped out some legacy filter drivers that Storage Spaces and a few RAID cards relied on. I've seen this hit people who upgraded from Windows 10 with a two-disk mirror configured. After the upgrade, the pool shows as "Not enough disks" and Event Viewer logs 0xC00A0003 with the specific driver name in the message.
Check the actual missing driver name first. The event text always names it — look in Event Viewer → Windows Logs → System for the storahci or stornvme source entry. Then verify the file exists:
dir C:\Windows\System32\drivers\stornvme.sys
dir C:\Windows\System32\drivers\storahci.sys
dir C:\Windows\System32\drivers\spaceport.sys
If any are missing, pull them from a known-good Windows install of the same build and drop them into System32\drivers. Don't grab them from the internet — driver signing will reject mismatched builds on Secure Boot systems. Then register them:
sc create stornvme type= kernel start= boot binPath= System32\drivers\stornvme.sys
Skip driver-pack installers here. They bundle a lot of irrelevant junk and won't fix a missing kernel-mode file.
Cause 3: Bad firmware on the NVMe drive or controller
Less common, but worth checking when the first two don't apply. Certain Samsung 980 Pro and 990 Pro batches had firmware that dropped off the bus under sustained load and re-enumerated without the protocol driver binding properly. The symptom is exactly 0xC00A0003 in the event log right before the drive disappears.
Check firmware with Samsung Magician, WD Dashboard, or nvme id-ctrl /dev/nvme0 on Linux. If you're behind, flash it. If you're already current and the drive still drops, run a SMART long test — reallocated sectors in the thousands mean the drive is on its way out.
smartctl -a /dev/nvme0 | grep -i reallocated
smartctl -t long /dev/nvme0
Don't bother with registry tweaks to disable power management on these. I've seen that advice float around and it doesn't address the root cause. Firmware or hardware replacement only.
Quick reference
| Symptom | Likely cause | Fix |
|---|---|---|
| Boot fails after BIOS mode change | Intel RST/VMD driver missing | Switch back to AHCI, install driver, re-enable RAID |
| Error after Windows update | Filter driver removed or unregistered | Restore stornvme/storahci, re-register with sc create |
| Disk drops under load | NVMe firmware bug | Flash latest firmware or replace drive |
| Storage Spaces pool offline | spaceport.sys missing | Restore file, reboot, re-import pool |
Start at the top. In 9 out of 10 tickets I've handled with this code, it's the BIOS storage mode mismatch. Everything else is a much rarer second or third.