USB drivers
Fix unrecognized USB devices, slow transfer speeds, and port power issues.

You might also need
USB drivers we cover
What does a usb driver do?
A USB xHCI controller driver operates the eXtensible Host Controller Interface, the single host-controller design that replaced the older UHCI, OHCI, and EHCI controllers and now drives every USB speed on a modern PC. The driver programs the controller's registers, sets up the Transfer Request Block rings the controller reads to move data, and services the interrupts the controller raises when a transfer completes. It is the root of the whole USB tree your ports hang from.
Enumeration is the driver's headline task. When you plug in a device, the controller detects the connection, the driver assigns an address, then reads the device descriptor, configuration descriptor, and interface descriptors to learn what the device is and what endpoints it offers. The dreaded 'Unknown USB Device, device descriptor request failed' means this conversation broke down before Windows could identify the device.
Why keeping it updated matters
The USB stack juggles an enormous variety of devices at very different speeds on one controller, so its driver is patched to fix a long tail of compatibility and power bugs. A very common one is selective suspend applied too eagerly, which puts an external drive or dongle to sleep mid-use so it disconnects and reconnects. Updated drivers ship better suspend heuristics, and running a current build is how that fix reaches your controller.
Enumeration reliability is the second reason. New devices, unusual hubs, and long cable chains stress the descriptor-reading conversation, and a stale driver is more likely to time out with 'device descriptor request failed'. Refreshed builds harden that handshake and add quirks for specific devices, so a gadget that would not enumerate on the old driver is recognised on the new one.
Common warning signs of usb driver failure
- A device shows as 'Unknown USB Device' with 'device descriptor request failed', so Windows never identifies it
- External USB drives disconnect and reconnect on their own because selective suspend puts them to sleep mid-transfer
- Every port on the controller stops responding at once until the machine is rebooted or the controller is reset
- A USB 3.2 drive transfers at USB 2.0 speeds because it enumerated on the wrong root hub or at the wrong speed
- Windows warns of a 'power surge on hub port' when a device draws more current than the port budget allows
- The xHCI controller shows Code 43 after sleep, or Code 10, and disabling then enabling it is the only recovery
How to fix usb driver problems
Reset the controller to clear hung ports
In Device Manager, expand Universal Serial Bus controllers, right-click the xHCI host controller, choose Disable device, wait a moment, then Enable device. This re-initialises the controller's TRB rings and clears a state where every port has stopped responding.
Turn off selective suspend for a dropping device
In the Power Options advanced settings, set USB selective suspend to Disabled, and on the device's Power Management tab clear 'Allow the computer to turn off this device to save power'. This stops a drive being suspended mid-transfer.
Force re-enumeration of a failed device
Unplug the device, then in Device Manager delete the 'Unknown USB Device' entry and choose Scan for hardware changes before replugging. This makes the driver repeat the descriptor conversation from a clean state, often clearing a one-off enumeration failure.
Reinstall the xHCI controller driver cleanly
Right-click the host controller, choose Uninstall device, then reboot so Windows reinstalls the controller and rebuilds the whole USB tree beneath it. This clears corrupted registry keys behind a Code 10 or a controller that will not start.
Error codes linked to this hardware
Windows cannot start this hardware device (Code 19)
Usually caused by corrupted registry values related to the device class.
Windows cannot load the device driver (Code 39)
Windows found the device but cannot load its required file, usually because that file is missing, damaged, quarantined, or registered incorrectly.
Windows successfully loaded the driver but cannot find the hardware (Code 41)
Windows loaded the expected package, but the matching hardware is no longer present or is not responding through its physical connection.
Windows has stopped this device because it has reported problems (Code 43)
The device hardware or driver failed. Most commonly seen on Graphics Cards and USB devices.
Helpful guides

Should You Use Driver Updater Software?
Driver updater tools promise one-click fixes but add risk. Here's what they really do, when they cause problems, and the safe way to check drivers yourself.

DCH vs Legacy Drivers in Windows 10/11
DCH drivers split hardware support from control-panel apps in Windows 10/11. Why the change happened and how to tell which type you have.

How to identify unknown devices with hardware IDs
A practical walkthrough for naming every mystery entry in Device Manager using hardware IDs, driver details, and Windows' built-in tools.
Frequently asked questions
Why does my USB device show 'device descriptor request failed' and stay unknown?
That error means the xHCI driver could not complete the enumeration conversation that reads the device's descriptors, so Windows never identified it. Deleting the Unknown USB Device entry and re-scanning forces a clean enumeration, and an updated controller driver hardens the handshake for stubborn devices and hubs.
Why do my external USB drives keep disconnecting and reconnecting on their own?
Self-disconnecting drives are almost always a victim of USB selective suspend putting the port to sleep mid-use. Disabling selective suspend in Power Options and clearing 'Allow the computer to turn off this device' on the drive's Power Management tab stops the spurious drops.
Why do all my USB ports stop responding at once until I reboot?
When every port dies together the fault is at the shared xHCI controller, not any single device, usually a hung TRB ring or interrupt state. Disabling then enabling the host controller in Device Manager resets it without a reboot, and a current driver reduces how often the hang recurs.
