Windows driver errors: full list and fixes explained
Fix Windows driver errors by checking the exact code first: Device Manager codes point to driver, resource, firmware, or hardware faults, while BSOD stop codes need the failing driver name, recent changes, and crash data. I have seen teams guess here, reinstall drivers for hours, miss a bad BIOS or dying device, and end up with repeat crashes or boot loops. This guide maps common Device Manager and blue-screen driver errors to their meaning, where to find them, and the first fix to try.
Start here: classify the error before you change anything
Before changing drivers, sort the failure into one of three buckets: a Device Manager code on one device, a BSOD stop code for a full system crash, or an app-specific error that only looks driver-related. That split sounds basic, but it keeps a local device fault from being chased like a kernel crash.
What changed right before the failure
Record the last change first. Common triggers are a Windows cumulative update, optional driver update, dock swap, BIOS change, GPU driver install, storage migration, new USB device, antivirus change, or a device that was moved to another port.
If the device failed right after a single change, reverse that change before broad cleanup. In practice, a rollback usually tells me more than a fresh reinstall.
The three evidence points to collect first
- The exact code and wording: in Device Manager, open the device, then read the Device status box in Properties. For a crash, record the stop code text and any 0x value shown on screen.
- The device identity: save Hardware Ids from the Details tab, including VEN/DEV for PCI devices or VID/PID for USB devices.
- The recent change history: note update history, driver installs, firmware changes, dock or cable changes, and whether the failure started after sleep, resume, or reboot.
Check Windows Update early, but do not stop there
Check Windows Update first, because cumulative and rollup patches do fix real driver and kernel bugs. Then verify the exact failing case again, on the same device and in the same workflow, because a green check in Settings does not tell you the vendor package, optional driver, or class filter stack is actually right.
For stop-code work, Microsoft Learn also says to keep BIOS and firmware current, and I would treat that as device-specific work: update the motherboard BIOS or UEFI, SSD firmware, GPU firmware if the vendor supplies it, Thunderbolt or dock firmware, and other controller firmware tied to the failing hardware. Microsoft Learn also recommends keeping at least 10-15 percent free disk space.
What do Windows driver error codes mean in Device Manager?
Device Manager codes describe the current state of one device inside Windows, not the whole PC. They appear in the device Properties dialog under Device status and point to likely failure classes such as missing drivers, low resources, blocked loading, firmware trouble, or a dead device.
Where to find the code
Open Device Manager, expand the hardware class, right-click the problem device, choose Properties, and read the Device status area. That is where codes such as Code 1, Code 3, Code 10, and Code 43 may be shown.
What the codes are telling you
These codes are device-state codes. They are different from setup logs, installer return codes, service-start failures, or blue-screen stop codes. One code can still map to more than one root cause. Code 10, for example, can come from a bad driver, a USB power problem, stale firmware on a dock, or a failing device.
Device Manager includes many codes, and Microsoft does not always put every code in one page. That is why I group triage by cause category instead of memorizing isolated definitions.
What is the difference between a Device Manager code and a BSOD stop code?
A Device Manager code reports the condition of one hardware device inside a running Windows session. A BSOD stop code reports why the operating system crashed. They can share a root cause, but they are different diagnostic systems and should not be treated as interchangeable.
Device Manager codes describe a device state
Examples include Code 1, Code 28, and Code 52. They usually mean Windows can still boot and enumerate the device, but the driver stack, resources, or policy checks failed for that device.
Stop codes describe a system crash
Stop codes are typically shown as hexadecimal identifiers. They begin with 0x and identify what caused the crash. They may also appear with text names such as CRITICAL_PROCESS_DIED. ManageEngine says there are more than 250 stop codes, so a workflow grouped by cause is more useful than a giant flat list. (manageengine.com)
When the two point to the same root cause
A broken storage driver can throw a Device Manager code during boot on one machine and a blue screen on another. A bad GPU driver can cause Code 43 when Windows is up, then a stop error under load. Microsoft Learn says 70% of stop errors are caused by third-party driver code, while 10% are caused by hardware issues. The overlap is real, but the evidence you collect is different. (Microsoft Learn)
Code-to-action matrix for Windows driver errors
Use this matrix as a first-pass map. Start with the most likely cause category, apply the best first fix once, then move to the failover fix if the code returns. If the same code comes back right after reinstall, treat that as evidence against a simple package corruption theory.
How to use the matrix
Best first fix means the action with the highest value before broad reinstall work. Failover fix is the next move if the first action fails. Escalation trigger is the point where support should collect more evidence, suspect hardware or firmware, or hand off to the vendor.
| Code | Most likely cause category | Best first fix | Failover fix | Escalation trigger |
|---|---|---|---|---|
| Code 1 | Driver missing for the detected device, wrong INF binding, or package configured for a different revision | Install the correct vendor driver for the exact hardware ID | Uninstall device, remove driver package, scan for hardware changes, reinstall vendor package | Code returns after clean reinstall or hardware ID maps to a different revision than the package supports |
| Code 3 | Corrupted driver or low memory/resources | Close apps, check Task Manager memory and resources, reboot, retest | Check paging file and virtual memory, then reinstall or roll back the driver | Memory pressure repeats across devices or system also shows crashes, hangs, or disk paging trouble |
| Code 10 | Driver, firmware, power, cable, or failing device | Power-cycle the device and host, then install the vendor driver matched to model and OS build | Change cable, port, dock, or power source; update device and host firmware | Immediate return on multiple ports or systems, or paired disconnect events in Event Viewer |
| Code 18 | Driver reinstall required | Reinstall the vendor package rather than using a generic driver | Remove old package from Driver Store and rescan | Driver package installs but device still binds to the wrong INF |
| Code 19 | Registry or class filter issue | Undo recent software tied to the device class, then reinstall the device | Check UpperFilters and LowerFilters for the class after backup | Optical, audio, or security software repeatedly re-adds the filter |
| Code 21 | Windows is removing the device or stale state | Restart and rescan hardware | Remove ghost device entries and retest | Device vanishes and returns in loops, especially on USB or docked hardware |
| Code 22 | Device disabled | Enable the device in Device Manager | Check BIOS, airplane mode, RF switch, or OEM hotkey controls | Device re-disables after resume or policy refresh |
| Code 24 | Device absent, bad connection, or incomplete install | Reconnect device and verify cable, slot, or dock seating | Uninstall stale entry and rescan | Storage, Wi-Fi, or GPU disappears from BIOS or from multiple operating systems |
| Code 28 | No driver installed | Install the correct driver using the hardware ID | Use the OEM or component vendor package instead of a generic class driver | Unknown device remains after chipset or serial I/O packages are installed |
| Code 31 | Driver cannot load required drivers | Roll back the last driver update or install the OEM package | Check dependency devices, chipset package, and device class filters | Code appears after feature update, image deployment, or security software change |
| Code 32 | Driver service start type disabled | Reinstall the driver package that recreates the service correctly | Compare service configuration with a known-good system | Service is being disabled by policy, hardening tool, or endpoint software |
| Code 37 | Driver initialization failure | Roll back the driver if the issue began after an update | Clean reinstall and update firmware | Appears only after sleep, resume, or cold boot, suggesting firmware timing trouble |
| Code 39 | Corrupted or missing driver binary, often filter-related | Reinstall the full package and remove old filter software | Repair system files and inspect class filters | Security, burning, audio, or virtual device software keeps breaking the stack |
| Code 43 | Device reported a problem; driver, firmware, power, or hardware | Shut down fully, remove power if possible, then retest with the latest stable vendor driver | Update firmware, swap cable or slot, test device in another system | Returns under load, after wake, or on multiple systems; suspect hardware |
| Code 48 | Incompatible driver blocked by Windows | Install a newer signed driver built for the current Windows version | Roll back the OS change or use a supported device revision | Vendor has no current package for the device and OS combination |
| Code 52 | Signature or integrity check failure | Install a properly signed vendor driver and remove the blocked package | Check Secure Boot, HVCI, and endpoint security interference | Business app or legacy hardware depends on an unsigned driver |
| Code 56 | Network or system configuration conflict | Undo recent VPN, hypervisor, or network filter installs | Reset network stack and reinstall adapter package | Issue affects multiple adapters after security or virtualization change |
| Returns immediately after reinstall | Wrong package, firmware bug, hardware fault, or policy/filter problem | Stop repeating reinstall; compare hardware IDs, driver date, provider, and firmware level | Test on another port, dock, or system and collect logs | Same code returns with known-good package and clean boot |
How do I fix Code 1, Code 3, Code 10, Code 28, or Code 43?
These codes look similar from a distance, but they split into two groups. Code 1 and Code 28 usually point to missing or wrong drivers. Code 3 often points to resources. Code 10 and Code 43 often sit between software, firmware, power, cable, and hardware failure.
Code 1 and Code 28: missing or incomplete driver install
Microsoft says Code 1 means the device has no drivers installed or they are configured incorrectly. Code 28 usually means no driver is available or installed. The best move is to identify the device by Hardware Ids, then install the correct vendor package for that exact model and OS version. (Microsoft Support)
If the device is an unknown system device after a clean install, look at chipset, serial I/O, storage controller, and Bluetooth packages before touching optional utilities.
Code 3: memory pressure, resource pressure, or driver corruption
Microsoft says Code 3 can mean the driver is corrupted or the system is low on memory. Microsoft also recommends closing some open applications to free memory and says to open Task Manager to check memory and system resources for Code 3.
If memory use is high, reduce load first. Then review virtual memory settings, disk free space, and background agents. I see resource depletion mimic driver faults all the time, especially on systems with heavy browser, VM, backup, or endpoint activity.
Code 10 and Code 43: the broadest fault bucket
These two are where blind reinstall cycles waste the most time. For USB devices, printers, webcams, audio interfaces, docks, and Bluetooth adapters, start with power, cable, port, and dock firmware. For GPUs and storage devices, add BIOS, PCIe slot, and device firmware checks early.
If Code 43 appears only under load, suspect heat, power delivery, device firmware, or the device itself. If Code 10 appears only through one dock or hub, stop treating it as a driver-only issue.
What should I do if a driver will not load on this device?
A driver that will not load is often blocked for a reason: bad signature, wrong OS build support, class filter damage, security policy, or a dependency that failed first. Treat Code 31, Code 37, Code 39, Code 48, and Code 52 as loading-related problems rather than simple update prompts.
Choose rollback, clean reinstall, or vendor package install
If the issue started right after a driver update, rollback is the right first move. If the package history is messy or the wrong INF keeps binding, uninstall the device, remove the driver package from the Driver Store, rescan, and install the vendor package fresh.
If Windows keeps selecting a generic package that fails, use the OEM package for laptops, docks, and platform devices. Generic packages are more risky on chipset, serial I/O, touchpad, and custom audio stacks.
Check signature and policy blocks
Code 52 often suggests Windows may have rejected the driver during a verification step. That can involve signature problems, Secure Boot, memory integrity settings, or endpoint security. Code 48 points more toward possible incompatibility with the current Windows version.
When filters or security software are the real problem
Code 19, Code 31, and Code 39 often appear after VPN clients, virtual device tools, disc software, audio suites, or security products add class filters. If reinstalling the driver changes nothing, inspect recent software that inserts itself into the device stack.
Are stop code errors usually caused by drivers or hardware?
Most stop-code work should begin with drivers, but not end there. Microsoft Learn says 70% of stop errors are caused by third-party driver code, while 10% are caused by hardware issues. The remaining cases can involve firmware, storage corruption, OS damage, or resource pressure.
Stop-code groups that often tie back to drivers
Crashes after GPU updates, VPN installs, storage filter changes, antivirus installs, or new docks often point to third-party driver code. Stop codes are unique identifiers in hexadecimal format, begin with 0x, and may include text names on the blue screen. Record both.
Signs the root cause is hardware, firmware, or power
- Crashes start under GPU load, battery-to-AC transitions, sleep and resume, or heavy USB bus use.
- The same device fails on more than one Windows image or in another machine.
- The device disappears from BIOS, drops link speed, or throws I/O errors before Windows loads.
- BSODs continue after a known-good driver rollback.
How recent changes affect the odds
A Windows update raises the odds of a compatibility issue. A BIOS flash raises the odds of firmware and power-management changes. A new dock, SSD, RAM kit, PSU, or USB cable raises the odds of hardware path issues. Change history matters because it narrows the first move.
Where do I find the error code in Device Manager?
The error code is usually in the device Properties window, inside the Device status area. Open Device Manager, find the affected hardware, open Properties, and read the exact wording there. Support staff should also capture Hardware Ids, driver provider, version, and date before making changes.
Fields worth capturing before you edit anything
- General tab: exact Device status text and code
- Driver tab: provider, version, date, and whether Roll Back is available
- Details tab: Hardware Ids and class GUID if needed
- Events tab: when the device last started, failed, migrated, or was configured
Fix paths by hardware class
The same code behaves differently by hardware class. A Code 43 on a GPU does not deserve the same first fix as a Code 43 on a USB webcam.
GPU and display adapters
Prioritize recent driver changes, BIOS updates, discrete versus integrated GPU switching, external display docks, and power delivery. For repeating Code 43 or BSODs during load, test with the latest stable vendor package, then a rollback, then firmware and hardware checks. If artifacts or crashes persist across drivers, suspect the card or VRAM path.
Wi-Fi, Bluetooth, and network adapters
Start with OEM wireless packages, not only generic Windows drivers. Then check airplane mode, physical RF switches, BIOS wireless settings, and VPN or security filters. Code 10, Code 31, and Code 56 often point to stack or filter problems on network hardware.
USB, docks, printers, and audio
Here, cables and power matter more than most guides admit. Try another port, direct connection, shorter path, powered dock, or another cable first. Then update dock firmware, printer firmware, audio interface firmware, or USB controller drivers. Intermittent Code 10 and Code 43 are often bus problems before they are INF problems.
Storage controllers, SSDs, and chipset devices
Use vendor storage and chipset packages where the platform requires them. Check BIOS storage mode, SSD firmware, and drive health early. If BSODs mention storage or the system freezes during paging, collect dump files before broad driver cleanup.
Advanced checks for repeat failures and blue screens
When the same code returns after a reinstall, stop repeating the same action. Move outward: Windows Update, firmware, dump analysis, Event Viewer, Reliability Monitor, hardware IDs, and cross-testing on another port or system.
Windows Update, optional drivers, and vendor packages
Install current Windows updates first. Then compare Windows optional driver offers with the vendor package already installed. On business laptops and docks, the OEM package is often the safer path for chipset, touchpad, audio, camera, and firmware-linked devices.
BIOS, UEFI, SSD, GPU, and peripheral firmware
Microsoft Learn recommends keeping BIOS and firmware up to date during stop-code work. That includes motherboard BIOS or UEFI, SSD firmware, GPU firmware where applicable, dock firmware, Thunderbolt firmware, printer firmware, and device-side controller firmware for audio and capture hardware.
Dump files, Event Viewer, and Reliability Monitor
For BSOD cases, Microsoft Learn says Automatic memory dump should be selected in Startup and Recovery. Dumps are commonly stored at %SystemRoot%\MEMORY.DMP or in %SystemRoot%\Minidump depending on dump type.
Collect the exact stop code text, the 0x value, recent failures from Reliability Monitor, and System log events around the crash time. That package gives support teams something they can use before escalation.
What support teams should collect before escalating
- Device Manager code and exact wording from Device status
- Hardware IDs, including VEN/DEV or VID/PID
- Driver provider, version, date, and whether rollback was available
- Recent Windows, BIOS, firmware, cable, dock, and hardware changes
- Exact stop code text and any 0x identifier
- Dump files from %SystemRoot%\MEMORY.DMP or %SystemRoot%\Minidump
- Relevant Event Viewer entries and Reliability Monitor timeline
Frequently asked questions
How do I fix Code 1 in Device Manager?
Microsoft says Code 1 means the device has no drivers installed or they are configured incorrectly. The right first fix is to identify the device by Hardware Ids and install the correct vendor driver. If it returns, remove the package, rescan hardware, and reinstall cleanly.
What causes Code 3 driver errors in Windows?
Microsoft says Code 3 can mean the driver is corrupted or the system is low on memory. Start by closing apps, then use Task Manager to inspect memory and system resources. If pressure is high, review paging and disk space before reinstalling the driver.
How do I fix Code 10, Code 28, or Code 43 on a device?
Code 28 usually means no driver is installed, so the first move is the correct package for the exact hardware ID. Code 10 and Code 43 need broader triage: driver, firmware, power, cable, dock, and the device itself should all be checked early.
What should I do if a driver will not load on this device?
If a driver will not load, treat it as a blocking problem rather than a missing-driver problem. Check for Code 31, Code 37, Code 39, Code 48, or Code 52, then review rollback options, signature status, security policy, filter drivers, and whether the package actually matches the device revision.
Where do I find the error code in Device Manager?
Open Device Manager, right-click the affected device, choose Properties, and read the Device status area on the General tab. That exact text matters. Support teams should also capture the Driver tab details and Hardware Ids before uninstalling, updating, or rolling back anything.
What is the difference between a Device Manager code and a BSOD stop code?
A Device Manager code describes one device state inside Windows, such as a missing or blocked driver. A BSOD stop code describes why Windows crashed at the system level. Stop codes begin with 0x, while Device Manager codes appear in the device Properties dialog.






