Code 39 on Windows: how to fix the driver error

Code 39 on Windows: how to fix the driver error

Code 39 means CM_PROB_DRIVER_FAILED_LOAD: Windows could not load the driver for the device. Start in Device Manager > right-click the device > Properties > Device status to confirm the code, then work through reinstall, filter review, and Windows security checks in that order. (Microsoft Support)

Advertisement

This guide is part of our Windows driver errors: full list and fixes series.

What usually causes code 39?

For troubleshooting, treat Code 39 as a driver-load problem and work through the standard Windows checks that can affect driver loading: reinstall the device driver package, review any class filter entries tied to the device class, and check whether Windows security settings are preventing an older driver from loading.

Likely causes, ranked by what to check first

  • First: remove and reinstall the device from Device Manager, then install the current package supplied for that device and Windows version.
  • Next: if the issue affects a whole device class, review that class key for UpperFilters or LowerFilters entries before making changes.
  • Also check: whether Memory integrity is enabled and whether the device has a newer signed driver available.
  • For vendor hardware: use the full installer package for the device instead of manually pointing Device Manager to loose driver files.

Where to confirm the exact error

Open Win+X > Device Manager > the affected device > right-click > Properties and read the Device status area. If the hardware also appears under a generic category such as Universal Serial Bus controllers, check that entry too before removing or reinstalling anything.

If another Device Manager code appears instead of Code 39, troubleshoot that exact code rather than assuming the same steps apply. (source)

Decision tree: what to try first for your device type

First check, safest fix, and escalation point

Device branchExact first checkSafest fixEscalation point
USB and everyday peripheralsOpen Win+X > Device Manager and see whether the device appears under its own class or under Universal Serial Bus controllers. Then test a rear motherboard USB port, a different cable, and no hub.Use Properties > Driver, then Uninstall device. If offered, tick Delete the driver software for this device, restart, install the current vendor package, then reconnect the device.If the same Code 39 returns after a clean reinstall, review class filters next. If only one older package fails, check Windows Security > Device security > Core isolation.
Vendor-specific industrial devicesConfirm the exact model, 32-bit or 64-bit Windows, and the installer intended for that device.Remove the device in Device Manager, restart, run the vendor installer, then connect or power on the hardware in the order the vendor documentation requires.If the package installs but the driver still will not load, check Core isolation settings and gather hardware IDs and setup log details before contacting the vendor.
Font and device-class errorsCheck whether many devices in the same class fail at once. A barcode font named “Code 39” is separate from the Windows Device Manager error.Back up the relevant class key, remove only the specific UpperFilters or LowerFilters value you intend to test, restart, and test the class again.If multiple devices in one class still fail after filter cleanup, capture the class GUID and the exact driver package in use.

Is the driver package broken or incomplete?

A standard reinstall is the safest starting point when one device fails on one PC.

Clean reinstall steps

  1. Open Win+X > Device Manager. Right-click the affected device, choose Properties, then note the device name and current details on the Driver tab.
  2. Go to Details tab > choose Hardware Ids from the property drop-down. Copy the top value so the exact hardware can be matched to the correct package.
  3. Return to Driver tab. If Roll Back Driver is available and the failure started after an update, use that first.
  4. If rollback is unavailable or fails, right-click the device and select Uninstall device. If Windows shows Delete the driver software for this device, tick it.
  5. Open Device Manager > View > Show hidden devices and remove stale duplicates of the same hardware if they remain.
  6. Restart the PC by using Start > Power > Restart.
  7. Install the current package from the device maker or OEM, then reconnect or power on the device in the order the vendor specifies.

When reinstall is not enough

If reinstalling the device and then installing the current vendor package does not clear Code 39, move to the class-filter and Windows Security checks below before escalating.

Could a filter or registry entry be blocking the driver?

It can. This branch is most relevant when several devices in the same class are affected or when the problem started after software that adds device-class filters was installed or removed.

Safe filter cleanup steps

  1. Open Win+X > Device Manager, locate the failing device, open Properties, and note its class and, if shown, its class GUID.
  2. Open Start, type regedit, and open Registry Editor.
  3. Navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class, then open the class GUID key that matches the affected device class.
  4. Back up that class key: select it, then choose File > Export and save the .reg file.
  5. In the right pane, look for UpperFilters and LowerFilters. If one of those values exists, delete only the specific filter value entry you are testing in that class key. Do not delete the class key itself.
  6. Close Registry Editor, restart Windows, and test the device again.

When this branch fits best

Use this branch when the issue looks class-wide rather than limited to one device.

Is Windows security blocking the driver from loading?

Check this after reinstalling the driver and reviewing any class filters.

Check Memory integrity first

  1. On Windows 11, open Settings > Privacy & security > Windows Security > Device security > Core isolation.
  2. On Windows 10, open Settings > Update & Security > Windows Security > Device security > Core isolation details.
  3. Check whether Memory integrity is On or Off.
  4. If it is on, get the newest signed driver package for the exact device model and install that package, then restart and test again.
  5. If testing requires changing the setting, turn Memory integrity off in that same Core isolation screen, restart the PC when prompted, test the device, then turn it back on and restart again after testing.

About HVCI and older drivers

If a device works only when Memory integrity is off, the next step is to look for a newer signed driver from the device maker.

Still not working? What to try before you escalate

If Code 39 remains after a clean reinstall, filter review, and Core isolation check, collect the exact device and setup details before contacting the device maker or support.

If that didn’t work, use this escalation ladder

  1. Capture the hardware IDs again from Device Manager > device > Properties > Details > Hardware Ids.
  2. Record the exact driver version from Properties > Driver.
  3. Record the Windows edition, version, and OS build from Settings > System > About.
  4. Check whether Memory integrity is on by returning to the Core isolation path above.
  5. Open C:\Windows\INF\setupapi.dev.log in Notepad, search for the hardware ID you copied from Device Manager, and note the lines immediately before and after the matching install section.
  6. If system files may be damaged, run sfc /scannow in an elevated Command Prompt, then restart.
  7. If SFC reports corruption it cannot fix, run DISM /Online /Cleanup-Image /RestoreHealth, then rerun sfc /scannow.

Who to contact

Contact the device vendor when the installer completes but the driver still will not load, or when the device uses a vendor-supplied package or service. Contact Microsoft support when the device relies on an in-box Windows driver or when the setup log points to a Windows component.

Prevention

Keep a copy of the exact installer that matches the hardware model and your Windows version, and use that installer when you need to reinstall the device.

Frequently asked questions

Where do I see Code 39 in Windows?

Open Device Manager, right-click the affected device, choose Properties, and read the Device status box. If you searched for a barcode term instead, these references cover that separate topic: (grokipedia.com)

What should I try first for a Code 39 device error?

Start with a clean reinstall in Device Manager, then install the current driver package for the exact device. If the error remains, check the device class for UpperFilters or LowerFilters, then review Core isolation and Memory integrity. (dynamsoft.com) (barcodefaq.com)

Should I delete UpperFilters or LowerFilters?

Only after you identify the affected device class and back up its class key in Registry Editor. Delete only the specific UpperFilters or LowerFilters value you are testing, restart Windows, and then retest the device. (barcodewiz.com) (azaleabarcodes.com)

What if Memory integrity is on?

Install the newest signed driver package for the device first. If you must test with the setting off, change it in Windows Security > Device security > Core isolation, restart, test, and then turn it back on after testing. (barcodelabel.guru)

When should I check setupapi.dev.log?

Check C:\Windows\INF\setupapi.dev.log after reinstalling the device if the same Code 39 returns. Search the log for the device hardware ID and review the matching install section to see what happened during driver installation.

Is a barcode font problem the same as Windows Code 39?

No. A barcode font or barcode symbology named “Code 39” is separate from the Windows Device Manager error code.

Similar Posts