If you're seeing 0xC000038E, you're probably mid-update or recovery and Windows just said "nope." The short version: your old driver is still holding a spot in memory and the new one can't sit down. Let's fix that.
The quick fix: force the driver to unload
This specific error occurs almost always with storage controllers (NVMe, SATA, RAID) or network adapters after a driver swap. The real fix is to tell Windows to evict the old driver from memory before the new one tries to load. Here's how:
- Boot into Safe Mode. Mash F8 during startup (or Shift + Restart from the login screen, then Troubleshoot > Startup Settings > Restart > press 4). Safe Mode loads only the bare minimum drivers, which gives you a clean slate.
- Open Device Manager (right-click Start > Device Manager). Find the device showing the error — likely under Storage Controllers or Network Adapters. It'll have a yellow triangle.
- Right-click the device, select "Uninstall device," and check the box that says "Delete the driver software for this device." This is critical — without that checkbox, Windows keeps the driver files in its store and may reload them on next boot.
- Restart normally. Windows will detect the device and reinstall the driver from Windows Update or the default inbox driver. If you have a specific driver you need (e.g., from Intel or Samsung), install it after this reboot, not during.
That's it for the common case. I've seen this work on Dell XPS 15s with NVMe SSDs, HP ProDesks with Intel RST drivers, and ThinkPads after a network driver update gone wrong.
Why step 3 matters
The root cause is Windows' driver staging behavior. When you update a driver, Windows doesn't immediately unload the old version — it marks it for removal on next reboot. If the driver is "in use" (e.g., your boot drive's controller), that unload never happens because the system can't unload a driver that's actively managing the disk you're reading from. So the old driver stays in memory, the new driver sees a conflict, and you get 0xC000038E.
Safe Mode sidesteps this: only a handful of critical drivers load, so the old driver isn't holding any resources. Uninstalling with "Delete driver software" purges the files from the driver store, so Windows can't re-load the stale version.
Less common scenarios
Sometimes the above doesn't cut it. Here are the edge cases I've run into:
Corrupted driver store
If uninstalling and reinstalling still gives the same error, the driver package itself might be corrupted. Open an admin Command Prompt and run:
dism /online /cleanup-image /restorehealth
sfc /scannow
Then reboot and retry. This fixes cases where the .inf or .sys file got mangled during download.
Pending driver operations stuck in queue
Windows has a staging area for pending driver installs at HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverStaging. If a previous update failed, a ghost entry might block the new one. You can manually clean it:
- Open Regedit as admin.
- Navigate to
HKLM\SYSTEM\CurrentControlSet\Services\and find the service key matching your device's driver (e.g.,nvme,stornvme,iaStorAC). - Check the
DeleteFlagvalue. If it's set to 1, the driver is marked for deletion but hasn't been removed. Set it to 0, reboot, then set it back to 1 and reboot again. This forces the unload.
I've only needed this on Windows 10 1909 and earlier — later versions handle it better, but it's worth knowing.
Third-party antivirus locking the driver
Some security software (Webroot, Norton) locks driver files to prevent tampering. If you've run one of those, temporarily disable real-time protection, uninstall the device, then reboot. Re-enable after.
Prevention: avoid the race condition
This error won't bite you again if you follow two rules:
- Always reboot before and after a driver update. Don't install a driver while the system has been running for days. Reboot once to clear any stale driver state, then install, then reboot again. This gives Windows a clean memory space.
- For storage controllers, use the manufacturer's uninstall tool if available. Samsung Magician, Intel RST, and AMD RAIDXpert all have driver removal utilities. They handle the unload sequence properly — Windows' generic uninstall sometimes doesn't.
- Don't skip the "Delete driver software" checkbox during uninstall. I know it's tempting to leave it unchecked to save a download, but that's how you get orphaned files that cause this exact error three updates later.
If you're managing multiple machines, script this with pnputil /delete-driver — it's the command-line equivalent of checking that box. Run pnputil /enum-drivers to list all third-party drivers, then pnputil /delete-driver oemXX.inf where XX is the offending one.
This error is annoying, but it's not hardware failure. Your drive is fine. Windows just needs a clean handoff.