Connected Standby and Network Devices on Windows 8 and Windows RT

To understand how network devices behave on Windows RT a basic understanding of the power states is necessary.

 

Power states are broken into two categories System Power states and Device Power states. System power states define several behavioral states based on various scenarios.

 

System Power States( https://msdn.microsoft.com/en-us/library/windows/desktop/aa373229(v=vs.85).aspx )

  • S0 - Active
  • S3 - Sleep
  • S4 - Hibernate

 

For systems known as Connected Standby ( https://msdn.microsoft.com/en-us/library/windows/hardware/jj248729.aspx ) the S3 state is disabled and an additional power state known as

S0 Low Power Idle is enabled. Connected Standby systems include Windows RT systems as well as certain other Windows 8 systems.

 

For each device in the system, various power states are required depending on device function.

Device Power States ( https://msdn.microsoft.com/en-us/library/windows/hardware/ff543186(v=vs.85).aspx )

  • D0 - Active Device - Full Power, Active Use (Required)
  • D2 - Device low power state (Optional)
  • D3 - the lowest-powered device low-power state (Required)
    • D3 Hot - Device remains on the bus, Bus maintains the D0 state
    • D3 Cold - Device is powered off, Bus power is removed, device can have sideband power

 

Devices that are not required for idle operation are placed into D3 when the system enters S0 idle to conserve power.

 

All networking devices ( Mobile Broadband, Wi-Fi and Ethernet) on these systems are required to support the D2 state as the NDIS Selective Suspend function  (https://msdn.microsoft.com/en-us/library/windows/hardware/hh451662(v=vs.85).aspx )will place the device in a low power state when the device is not  actively transferring data when the system is attempting to go into S0 Idle. This is typically D2 or D3 depending on the device. When in these power states the device is  configured to wake the system on certain events.

 

 For Wi-Fi the wake reasons are

  • Packet
    • The device has received a packet that the system has registered for notification  
    • 16 patterns are required to be supported on Windows 8
  • Network List Offload Discovery
  • AP Association Lost
    • The Wi-Fi device has disconnected from the Access Point
  • GTK Handshake Error
    • The keys used to connect to the Access point need to be renegotiated (IEEE 802.11i RSN group transient key (GTK))
  • 4 Way Handshake Request
    • The device needs to perform authentication with the Access Point

 

 

For  Mobile Broadband devices the wake reasons are:

  • Packet
    • The device has received a packet that the system has registered for notification  
  • Disconnect
    • The device has disconnected from the network
  • Connect
    • The device has connected to the network
  • Register State
    • The device has registered with the Mobile Broadband Provider
  • SMS Receive
    • The device has received an SMS message
  • USSD Receive
    • The device has received an USSD message

 

For Ethernet the wake reasons are:

  • Packet
    • The device has received a packet that the system has registered for notification
  • Disconnect
    • The device has disconnected from the network
  • Connect
    • The device has connected to the network

 

For these devices to perform these functions while the system CPU is in the D0 Idle state, they need onboard processing and memory. A device present in several of the first systems that supported Connected Standby was the Broadcom 4330 device (https://www.broadcom.com/products/Wireless-LAN/802.11-Wireless-LAN-Solutions/BCM4330 )which has its own integrated ARM® Cortex™-M3 processor and on-chip memory allowing it to perform many actions without using the system CPU which greatly reduces power. The requirement for a Connected Standby system is to stay connected to a network for 16 hours while consuming 5% or less of the system battery. To meet these goals, network devices must act automatously whenever possible staying connected to the network without involving the system CPU whenever possible. USB based devices are also required to support USB Selective suspend.

When NDIS Selective Suspend is used in conjunction with USB Selective Suspend, the system can  stop actively polling the USB device ( https://msdn.microsoft.com/en-us/library/windows/hardware/ff540144(v=vs.85).aspx ) which allows the system to conserve power as the USB adapter is no longer polled for packets and instead will wake the USB bus when an event that needs USB bus interaction is detected.

 

If a device that does not support these features is attached to the system, the device is put into the D3 state and the USB port is shutdown to conserve power.  As the device is powered off it can no longer function, in the case of network adapters this will typically disconnect from the network.

 

Connected Standby systems enter S0 idle quite frequently, generally corresponding to the screen turning off. If a non Connected Standby aware network device is attached, connectivity will be lost whenever this occurs.