Windows · Windows Server  ·  high  ·  Bugchecks & startup

STOP 0x0000009F — DRIVER_POWER_STATE_FAILURE

A driver did not complete a power transition in time, so the power manager gave up and bugchecked.

What you see

Bluescreens on sleep, hibernate, resume or shutdown — rarely while the machine is being used. Laptops closing the lid, or a machine that will not wake.

What is actually wrong

Network adapters (particularly Wi-Fi and Killer/Intel), USB controllers, and storage drivers are the usual suspects. Fast Startup makes it appear on shutdown as well as sleep.

Codes and articles

0x0000009F0x9FDRIVER_POWER_STATE_FAILURE

Start here — find out which fix applies

A script that runs the 1 inspection command from the write-up below and prints what each one returned. It reads the machine and changes nothing — every command that could write, delete, start or stop is excluded from it by construction. Run this first, then pick the fix its output points at.

Download the read-only diagnosticchanges nothing · safe to run before reading

No warranty. Use at your own risk - JbTecWiz accepts no liability. Read it before you run it, and have a backup.

Fixes (3)

Stop the devices most likely to be at fault from being powered down
Elevated PowerShell25 minuteslow riskreversible

Sleep or resume. This narrows it quickly without needing a debugger.

  1. List every device Windows is allowed to switch off.

    PowerShell
    Get-CimInstance -ClassName MSPower_DeviceEnable -Namespace root\wmi | Where-Object Enable -eq $true | Select-Object -First 20 InstanceName
  2. Turn off power management on the network adapters first — they cause most of these.

    PowerShell
    Get-NetAdapter | Get-NetAdapterPowerManagement | Format-Table Name, AllowComputerToTurnOffDevice -AutoSizeGet-NetAdapter | ForEach-Object { Set-NetAdapterPowerManagement -Name $_.Name -AllowComputerToTurnOffDevice Disabled -ErrorAction SilentlyContinue }
  3. Disable 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 /setactive SCHEME_CURRENT
  4. Update the chipset, network and storage drivers from the machine vendor rather than Windows Update.

  5. Test sleep and resume several times.

Confirm it workedThe machine sleeps and wakes repeatedly without a bugcheck.
Command Prompt
powercfg /sleepstudy /output C:\temp\sleepstudy.html
If you need to undo itpowercfg /restoredefaultschemes returns the power settings; re-enable adapter power management with Set-NetAdapterPowerManagement -AllowComputerToTurnOffDevice Enabled.
Download this fix as a PowerShell script2 steps you do yourself · asks before each step

No warranty. Use at your own risk - JbTecWiz accepts no liability. Read it before you run it, and have a backup.

Turn off Fast Startup
Elevated PowerShell10 minuteslow riskreversible

It happens on shutdown. Fast Startup makes shutdown a hibernate, so a driver that cannot hibernate bugchecks on what looks like a normal shutdown.

  1. Disable hiberboot, which is what Fast Startup actually is.

    Command Prompt
    powercfg /hibernate off

    This also frees a hiberfil.sys the size of your RAM. If you want hibernate kept, disable only Fast Startup in Control Panel → Power Options → Choose what the power buttons do.

  2. Confirm it is off.

    Command Prompt
    powercfg /a
  3. Shut down and start up several times to test.

Confirm it workedShutdowns complete without a bugcheck.
If you need to undo itpowercfg /hibernate on
Download this fix as a PowerShell script1 step you do yourself · asks before each step

No warranty. Use at your own risk - JbTecWiz accepts no liability. Read it before you run it, and have a backup.

Name the driver from the dump
WinDbg40 minuteslow riskreversible

No pattern, or the quick fixes did not help. For 0x9F the dump identifies the device stack precisely.

  1. Open C:\Windows\MEMORY.DMP in WinDbg.

  2. Run the automatic analysis.

    Command Prompt
    !analyze -v
  3. Parameter 3 of this bugcheck is the device object that stalled. Inspect it.

    Command Prompt
    !devstack <address-from-parameter-3>

    This prints the whole driver stack for that device, which names the third-party filter driver holding up the transition — the thing !analyze often attributes to ntoskrnl.

  4. Update or remove the driver it names.

Confirm it workedThe transition completes cleanly after the driver change.
If you need to undo itRoll the driver back in Device Manager if the newer one is worse.
Download this fix as a PowerShell script2 steps you do yourself · asks before each step

No warranty. Use at your own risk - JbTecWiz accepts no liability. Read it before you run it, and have a backup.

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.