8

I have a pair of Bluetooth 4.0 headphones which are paired with both my laptop and my desktop. As soon as I power on the headphones, they will wake any paired device from standby. So if I have my desktop in standby and I want to use the headphones with my laptop, they will wake my desktop from sleep and reconnect to it.

I would like to be able to disable this functionality. If I view the power settings on the Bluetooth module in Device Manager, the option to "Allow this device to wake the computer" is grayed out. This is probably because the Bluetooth adapter in my desktop is powered by USB, and, per Microsoft's implementation of the Bluetooth protocol, the USB root hub and controller handles the power states for connected devices.

However, if I open up the root hub to which the bluetooth module is connected, the option to "Allow this device to wake the computer" is also grayed out. I don't want to disable it here, anyway, since my keyboard is also connected to the same hub and I want to be able to wake my computer from standby with my keyboard.

Using the PowerCFG -lastwake command in a command prompt only tells me that the device that woke the computer was the USB Root Hub (as it should be, per Microsoft's implementation of the Bluetooth protocol). Right now, when I put my computer to sleep, the Bluetooth adapter enters a D2 sleep state. Is there a way to force it into a D3 (off) state when I put my computer in standby? Or a hack in the registry or somewhere that will disable the wake from standby functionality for the Bluetooth adapter?

How do I prevent my computer from waking from standby whenever I power on my Bluetooth headphones?

:Edit:

powercfg -devicequery wake_programmable
HID Keyboard Device
HID-compliant consumer control device (001)
HID Keyboard Device (001)
HID-compliant system controller (001)
HID-compliant consumer control device (004)
HID-compliant system controller (003)
HID-compliant consumer control device (005)
Qualcomm Atheros AR8151 PCI-E Gigabit Ethernet Controller (NDIS 6.30)
HID-compliant vendor-defined device (006)
HID-compliant vendor-defined device (008)
HID-compliant vendor-defined device (009) 
HID-compliant vendor-defined device (010)
HID-compliant mouse (001)

powercfg -devicequery wake_armed
HID Keyboard Device
HID Keyboard Device (001)
HID-compliant mouse (001)
Thomas
  • 5,348

3 Answers3

5

To see the list of wake-capable devices:

powercfg /devicequery wake_programmable

HID Keyboard Device
Intel(R) Dual Band Wireless-AC 8265

To see the list of wake-enabled devices:

powercfg -devicequery wake_armed

HID Keyboard Device

To disable awake from a certain device:

powercfg /devicedisablewake "HID Keyboard Device"

Et voilĂ :

powercfg /devicequery wake_armed

NONE
rustyx
  • 1,118
0

As comment section from the highest answer says, the root cause is that Bluetooth chip is integrated with WiFi chip, therefore when Bluetooth device trying to re-connect to computer when it was turned on, the computer will see that your network adapter is working, which is considered as Wake On LAN.

To solve this issue, go to Device Manager, find your WiFi adapter's property, uncheck the "Allow the computer to turn off this device to save power".

Rilla
  • 1
0

Would you consider this scenario:

  1. when Desktop PC standby time is reached, auto trigger a script that will disable bluetooth adapter, trigger async standby in 5 secs, window popup "Windows standby at hh:mm press OK to continue", script now paused.
  2. 5 secs later - Desktop PC goes into standby mode
  3. Desktop PC ignores all Bluetooth devices
  4. When you want to use laptop exit from standby state via non-Bluetooth device (eg laptop keyboard) and answer waiting popup, script continues and enables Bluetooth adapter
  5. Desktop PC resumes

Would that be suitable?

Here is standby_bt_ctl.cmd which would need to be hooked in (suggestions needed for that):

@echo %DBG% off
:: go to standby after turning off Bluetooth adapter
::
:: bt_ctl.cmd - still to be determined would suggest devcon tool
call bt_ctl.cmd off
start /min nircmd.exe cmdwait 5000 standby
nircmdc.exe show nircmd infobox "Standby at ~$currdate.dd-MM-yyyy$ ~$currtime.HH:mm:ss$" "Information"
call bt_ctl.cmd on
Scott R
  • 126