Virtualhere USB Root Hub remains active during S0 low power idle

I have been trying out VirtualHere on a laptop which uses S0 low power idle (aka Modern Standby or Connected Standby) instead of the traditional S3 standby. On this machine, powercfg -sleepstudy shows that the VirtualHere root hub (USB Root Hub (xHCI) (USB\ROOT_HUB30)) remains active during standby. This appears to result in a small power drain during sleep: powercfg -batteryreport indicates that 2% (1010mWh) was used during a 11-hour sleep.

With the VirtualHere drivers uninstalled (vhui64.exe -y), battery drain during standby is effectively zero according to batteryreport. Whether the UI is running or devices are connected when entering standby doesn't seem to make a difference.

#2

The current way the root hub works is quite stable, i dont really want to tweak the power save settings as from experience this leads to bsod's if its pushed too far. Virtualhere is more complicated than a normal host controller because its also dependent on the network subsystem so i think at the moment it will say as is.

#3

Fair enough, dealing with that combination while VirtualHere is active sounds difficult. But would it be possible to put the driver in some sort of inactive or sleep state while the UI (or service) is not running, and no devices are connected?

#4

Actually the way the virtualhere xhci driver works is it has no threads, or any sort of sleep/wake/check loop. Its all event driven via kernel "KEVENT" objects and callbacks. What windows does is that when a driver is waiting on an event, it is switched out of the CPU and a hardware interrupt is waited on which triggers the process to be reawoken. Im not sure how it still uses power at this point, perhaps its something in the kernel that needs to slightly stay awake to listen for something.