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.
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.
A single device
- Right-click the device, Uninstall device, tick "Attempt to remove the driver for this device", confirm and restart.
- Install a package that lists your hardware ID (how to read the ID). Prefer the newest package that still supports your Windows version.
- If the install itself fails, unpack the package and add it with
pnputil /add-driver C:\drv\*.inf /subdirs /installfrom 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.
- Create a restore point.
- Open
regeditand go toHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class. - 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. - Export the key, then delete the UpperFilters and LowerFilters values and restart.
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.
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
- Find your hardware ID
- Unknown USB Device (Device Descriptor Request Failed)
- Code 43: device reported problems
- Code 10: this device cannot start
- SM Bus Controller driver
- PCI Simple Communications Controller
- PCI Data Acquisition and Signal Processing Controller
- Base System Device driver
- PCI Device driver missing
- Ethernet Controller driver missing
- Network Controller driver missing
- Unknown device in Device Manager
- Code 28: drivers are not installed
- Code 31: Windows cannot load the drivers
- Code 52: digital signature problem
- USB device not recognized
- Install a driver from an INF file
- Wi-Fi gone after a Windows update
- Bluetooth missing from Windows
- SD card reader not working