0XC000038E

Fix 0xC000038E: Driver stuck in memory after update

Your old driver didn't fully unload before the new one tried to load. Here's the exact fix and why it works.

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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:

  1. Open Regedit as admin.
  2. Navigate to HKLM\SYSTEM\CurrentControlSet\Services\ and find the service key matching your device's driver (e.g., nvme, stornvme, iaStorAC).
  3. Check the DeleteFlag value. 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.

Related Errors in Hardware – Hard Drives
Clone software says source disk error – what’s really going on 0X00000474 Fix 0x00000474: Change power state vetoed by driver 0X00001AB9 Fix ERROR_NOT_SNAPSHOT_VOLUME (0X00001AB9) on Windows Files from Recycle Bin show corruption after recovery

Was this solution helpful?

EP
Erropedia Team
Tech Support Editors
The Erropedia editorial team researches and documents real-world tech errors from across Windows, Linux, macOS, networking, databases, cloud platforms, and more. Every solution is reviewed for accuracy and updated as software and systems evolve.