Code 39: "Windows cannot load the device driver for this hardware"

DeviceInBox editorial team · Last updated October 6, 2026

"Windows cannot load the device driver for this hardware. The driver may be corrupted or missing. (Code 39)" means the driver file itself could not be loaded. The entry for the device points at a .sys file that is missing, damaged, blocked or registered incorrectly. Unlike Code 28, a driver is assigned; unlike Code 10, it never reaches the device.

Device status box showing the Code 39 message for an optical drive
The driver file behind the device entry could not be loaded.

Which devices fail tells you the cause

  • One device alone: the driver package is damaged. Reinstall it.
  • Every device of one class, for example all DVD drives or all USB controllers: a filter driver in the registry is pointing at software that is gone.
  • Several unrelated devices at once: system files or the driver store are damaged, or a security product is blocking driver loading.
Three patterns of Code 39: one device, one class, or unrelated devices
Count the failing devices before you change anything.

A single device

  1. Right-click the device, Uninstall device, tick "Attempt to remove the driver for this device", confirm and restart.
  2. Install a package that lists your hardware ID (how to read the ID). Prefer the newest package that still supports your Windows version.
  3. If the install itself fails, unpack the package and add it with pnputil /add-driver C:\drv\*.inf /subdirs /install from an administrator prompt, which reports the exact reason when it refuses.

A whole class: UpperFilters and LowerFilters

This is the classic Code 39, and the one that took down optical drives for years after CD burning tools were removed. The class key keeps a list of filter drivers, and Windows refuses to start any device of the class when one of them cannot be loaded.

  1. Create a restore point.
  2. Open regedit and go to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class.
  3. Open the subkey whose Class value matches the failing class: {4d36e965-e325-11ce-bfc1-08002be10318} for DVD and CD drives, {36fc9e60-c465-11cf-8056-444553540000} for USB controllers, {4d36e972-e325-11ce-bfc1-08002be10318} for network adapters.
  4. Export the key, then delete the UpperFilters and LowerFilters values and restart.
Registry path to a device class key with UpperFilters and LowerFilters listed
Deleting the filter values restores the whole class at once.

Windows recreates the filters it needs by itself. The ones it does not recreate belonged to software that is no longer installed.

Blocked rather than missing

Three things block a driver that is present and intact:

  • Memory integrity, under Windows Security, Device security, Core isolation. Its incompatible driver list names the file. A newer driver is the fix.
  • A security product with driver control. Check its logs for the .sys file name before blaming Windows.
  • A revoked or expired signature on an old driver. Windows 10 and 11 reject unsigned kernel drivers outright; see Code 52.
Core isolation screen listing a driver that is incompatible with memory integrity
Memory integrity names the exact driver file that it blocked.

Repair the system files

When several unrelated devices show Code 39, run from an administrator prompt and restart:

sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth

If the devices came back only after a repair install, keep the driver packages you installed by hand: a Windows upgrade sometimes drops third-party drivers that it cannot validate.

Related: Code 31, Code 10 and installing a driver from an INF file.

More guides