Question Constant BSOD - driver_power_state_failure, but only when external SSD is plugged in

Sep 26, 2024
3
0
10
I'm almost certain it has to do with the new SSD I purchased recently. The new SSD works fine. Sometimes my PC goes days without the BSOD happening. Sometimes it won't even make it to 30 minutes. It always says "driver_power_state_failure".

I checked bluescreenview and it seems to be saying the culprit is ntoskrnl.exe, but I don't know what that means. I could also see that the logs blame my Intel(R) Bluetooth Driver, but I am not sure how to go about actually addressing that, or if anything else could be the culprit. I am praying that this is just a simple software issue that would just take me a few clicks to fix. I maintain my PC fairly well. I've tried everything I could find via the first few pages of Google.

Is there a better way for me to find out exactly why this issue is happening, or do I just blame the external SSD and move on?

I work from home and spend a lot of time at my PC, so this has been really killing me. Thanks, for anyone reading.
 

ubuysa

Distinguished
Those dumps are from July, but I see you haven't plugged in the USB SSD recently. The dumps are all similar and all confirm that the problem is with a USB3 device - but not your external SSD. The dumps all show that the problem USB device is a Bluetooth wireless adapter, probably part of a combined WiFi/Bluetooth adapter.

The problem happens because a USB3 Bluetooth adapter fails to complete a power transition (from idle low power to running high power) in an appropriate length of time.

To give you some detail (and proof) the dump triage provides the address of the IRP (Interrupt Request Packet) that handles the power transition...
Rich (BB code):
4: kd> !irp ffff950aebf729e0
Irp is active with 18 stacks 17 is current (= 0xffff950aebf72f30)
 No Mdl: No System Buffer: Thread 00000000:  Irp stack trace.
     cmd  flg cl Device   File     Completion-Context
 [N/A(0), N/A(0)]
            0  0 00000000 00000000 00000000-00000000 

<zero entries removed>

            Args: 00000000 00000000 00000000 00000000
>[IRP_MJ_POWER(16), IRP_MN_SET_POWER(2)]
            0 e1 ffff950ae7a89de0 00000000 fffff8044b37ac60-ffff950ae9009470 Success Error Cancel pending
           \Driver\BTHUSB    nt!PopRequestCompletion
            Args: 00000000 00000001 00000003 00000000
 [N/A(0), N/A(0)]
            0  0 00000000 00000000 00000000-ffff950ae9009470 

            Args: 00000000 00000000 00000000 00000000
The driver at the bottom of this structure is the one holding on to the IRP and preventing the power transition completing. You can see that it's a BTHUSB driver (bthusb.sys) - a USB Bluetooth device driver.

The dump triage also gives us the address of the device object that Windows uses to manage the device. From that we can obtain the address of the device node which describes the actual device. Here's the device node for the failing device...
Rich (BB code):
4: kd> !devnode ffff950ae4bf4cd0
DevNode 0xffff950ae4bf4cd0 for PDO 0xffff950ae47a4de0
  Parent 0xffff950add0db340   Sibling 0xffff950ae4c96cd0   Child 0xffff950ae421aa60
  InstancePath is "USB\VID_8087&PID_0A2A\6&2f27204&0&12"
  ServiceName is "BTHUSB"
  TargetDeviceNotify List - f 0xffffd280c4b2ab10  b 0xffffd280c4b2a710
  State = DeviceNodeStarted (0x308)
  Previous State = DeviceNodeEnumerateCompletion (0x30d)
  StateHistory[04] = DeviceNodeEnumerateCompletion (0x30d)
  StateHistory[03] = DeviceNodeEnumeratePending (0x30c)
  StateHistory[02] = DeviceNodeStarted (0x308)
  StateHistory[01] = DeviceNodeEnumerateCompletion (0x30d)
  StateHistory[00] = DeviceNodeEnumeratePending (0x30c)
  StateHistory[19] = DeviceNodeStarted (0x308)
  StateHistory[18] = DeviceNodeEnumerateCompletion (0x30d)
  StateHistory[17] = DeviceNodeEnumeratePending (0x30c)
  StateHistory[16] = DeviceNodeStarted (0x308)
  StateHistory[15] = DeviceNodeEnumerateCompletion (0x30d)
  StateHistory[14] = DeviceNodeEnumeratePending (0x30c)
  StateHistory[13] = DeviceNodeStarted (0x308)
  StateHistory[12] = DeviceNodeEnumerateCompletion (0x30d)
  StateHistory[11] = DeviceNodeEnumeratePending (0x30c)
  StateHistory[10] = DeviceNodeStarted (0x308)
  StateHistory[09] = DeviceNodeEnumerateCompletion (0x30d)
  StateHistory[08] = DeviceNodeEnumeratePending (0x30c)
  StateHistory[07] = DeviceNodeStarted (0x308)
  StateHistory[06] = DeviceNodeStartPostWork (0x307)
  StateHistory[05] = DeviceNodeStartCompletion (0x306)
  Flags (0x68000130)  DNF_ENUMERATED, DNF_IDS_QUERIED,
                      DNF_NO_RESOURCE_REQUIRED, DNF_NO_LOWER_CLASS_FILTERS,
                      DNF_NO_UPPER_DEVICE_FILTERS, DNF_NO_UPPER_CLASS_FILTERS
  CapabilityFlags (0x00001e13)  DeviceD1, DeviceD2,
                                Removable, SurpriseRemovalOK,
                                WakeFromD0, WakeFromD1,
                                WakeFromD2
As well as the ServiceName indicating that this is the expected Bluetooth USB device, the InstancePath provides the hardware ID: USB\VID_8087&PID_0A2A. You can look these up, and there you'll see that this is an Intel Bluetooth Wireless Interface device.

I suspect, since you only get the problem when plugging in an external SSD, that there may be some sort of conflict at the USB level that causes the Bluetooth device to fail its power transition. I would suggest that yopu ensure that the following drivers are updated...
  • The driver for your specific WiFi/Bluetooth USB device. Get this from the website of the WiFi/Bluetooth adapter vendor.
  • The chipset drivers for your motherboard. Get this from the website of your motherboard vendor - where I note there is a recent update available.
It would also be worthwhile plugging in the external SSD with the WiFi/Bluetooth adapter removed. See whether the SSD is stable then.