Windows · Windows Server  ·  medium  ·  Hardware, drivers & peripherals

Device Manager Code 43 — "Windows has stopped this device"

The driver loaded, asked the device to start, and the device reported a failure. Windows then stops it rather than leaving it half-running.

What you see

A yellow triangle in Device Manager with "Windows has stopped this device because it has reported problems (Code 43)". Most often a USB device, a graphics card, or a device that worked yesterday.

What is actually wrong

Genuine hardware failure is only one of four causes, and not the most common. The others are a driver that no longer matches the firmware, a USB port that has been power-suspended and will not resume, and a device left in a bad state that only a full power drain clears.

Codes and articles

Code 43Code 10Code 45Code 28CM_PROB_FAILED_POST_START

Fixes (3)

Clear the device state properly before touching drivers
The machine itself15 minuteslow riskreversible

Always first. It costs a quarter of an hour and resolves a surprising share of these outright.

  1. Shut down fully — not restart, and not with Fast Startup active, which only hibernates the kernel and preserves the broken device state.

    Command Prompt
    shutdown /s /f /t 0

    This is the whole point of the step. A restart keeps the power on and a normal shutdown with Fast Startup enabled saves the driver state to disk and reloads it, faults included.

  2. Unplug the machine from the mains, remove the battery if it is removable, and hold the power button for thirty seconds.

  3. Reconnect and boot. Check whether the device has come back.

    PowerShell
    Get-PnpDevice -Status Error,Degraded,Unknown | Format-Table Status,Class,FriendlyName,InstanceId -AutoSize
  4. If Fast Startup is on, turn it off while diagnosing — it will mask everything you do next.

    Command Prompt
    powercfg /hibernate off
Confirm it workedThe device shows Status OK.
PowerShell
Get-PnpDevice -FriendlyName '*your device*' | Format-List FriendlyName,Status,Problem,ProblemDescription
If you need to undo itpowercfg /hibernate on restores Fast Startup and hibernation.
Stop Windows suspending the USB port
Elevated PowerShell15 minuteslow riskreversible

A USB device, particularly one that fails after the machine has been idle or has slept.

  1. Turn off USB selective suspend in the active power plan.

    Command Prompt
    powercfg /setacvalueindex SCHEME_CURRENT 2a737441-1930-4402-8d77-b2bebba308a3 48e6b7a6-50f5-4782-a5d4-53bb8f07e226 0powercfg /setdcvalueindex SCHEME_CURRENT 2a737441-1930-4402-8d77-b2bebba308a3 48e6b7a6-50f5-4782-a5d4-53bb8f07e226 0powercfg /setactive SCHEME_CURRENT
  2. Then clear the per-hub setting, which is separate and survives the power plan change.

    PowerShell
    Get-CimInstance -Namespace root\wmi -ClassName MSPower_DeviceEnable | Measure-Object | Format-List Count

    The power plan governs selective suspend; each USB Root Hub has its own "Allow the computer to turn off this device" checkbox in Device Manager. Both have to be clear or the port still powers down.

  3. In Device Manager, expand Universal Serial Bus controllers, and clear that checkbox on every USB Root Hub and Generic USB Hub.

    Command Prompt
    devmgmt.msc
  4. Try the device in a port on a different controller — a rear port directly on the motherboard rather than a front panel or a hub.

Confirm it workedThe device survives a sleep and resume cycle.
PowerShell
Get-PnpDevice -Class USB -Status Error | Format-Table FriendlyName,Problem
If you need to undo itpowercfg with a value of 1 restores selective suspend; the checkboxes can be ticked back.
Replace the driver cleanly rather than updating over it
Elevated PowerShell, offline40 minutesmedium riskreversible

Graphics or a device where an update is suspected. An install over a broken driver usually inherits the fault.

  1. Note the exact device and hardware ID first — you need this to find the right driver.

    PowerShell
    Get-PnpDevice -Status Error | Select-Object -First 5 FriendlyName,InstanceId,Problem | Format-List
  2. Download the correct driver from the hardware manufacturer before removing anything.

  3. Remove the existing driver and its package, not just the device.

    Command Prompt
    pnputil /enum-drivers | findstr /i "nvidia amd intel"pnputil /delete-driver oem##.inf /uninstall /force

    Uninstalling the device in Device Manager leaves the driver package in the store, and Windows reinstalls the same broken driver on the next scan. Removing the package is what makes the reinstall meaningful.

  4. Restart, then install the downloaded driver. For graphics, choose the clean install option the vendor's installer offers.

  5. If the device still reports Code 43 with a fresh driver on a fresh boot, treat it as hardware and test it in another machine.

Confirm it workedThe device reports OK and the driver version matches what you installed.
PowerShell
Get-PnpDevice -FriendlyName '*your device*' | Get-PnpDeviceProperty -KeyName DEVPKEY_Device_DriverVersion | Format-List InstanceId,Data
If you need to undo itDevice Manager → Driver → Roll Back Driver returns the previous version if Windows kept it.

Where this stops. This write-up was written and checked by hand. It says what each step changes, how to confirm it worked and how to reverse it, and anything destructive is flagged before you reach it. If it does not match what your machine is doing, search the Support Centre for the exact code or message — and when something needs a person, get in touch.