Windows 2000 USB Root Hub Power Management
Microsoft Windows 2000 manages USB root hub power management through a combination of the Windows Driver Model (WDM), the Advanced Configuration and Power Interface (ACPI) specification, and configuration options exposed via the Device Manager. By coordinating system-level power states (S-states) with device-level power states (D-states), the operating system dynamically suspends idle USB ports to conserve energy, particularly on portable systems, while allowing connected devices to wake the system or resume full functionality upon demand.
Architectural Framework
At the core of USB power handling in Windows 2000 are the native USB
stack drivers, primarily Usbd.sys and
Usbhub.sys. Windows 2000 interfaces with the hardware's
Host Controller Interface (typically UHCI or OHCI) and the motherboard's
ACPI implementation.
The operating system maps the host controller and its associated root hubs to device power states ranging from D0 (fully operational) to D3 (completely powered down). When the system determines that a root hub or downstream port is idle, it transitions that port to a low-power suspended state by issuing USB control requests to turn off bus traffic.
Device Manager Configuration
Administrators can manually control root hub power settings through the operating system's interface:
- Open Device Manager via the Computer Management console or System Properties.
- Expand the Universal Serial Bus controllers node.
- Right-click a USB Root Hub and select Properties.
- Navigate to the Power Management tab.
The primary setting available is the checkbox labeled "Allow the computer to turn off this device to save power."
- Enabled (Default): Windows 2000 will turn off the root hub or put its ports into a suspended state when the computer enters standby (S3) or hibernation (S4), or when the bus remains inactive.
- Disabled: The root hub remains in the D0 (fully powered) state continuously. This prevents the bus from sleeping and ensures connected devices receive uninterrupted power.
Additionally, the Power tab on the root hub displays the power requirements of downstream devices, indicating whether the hub is operating on bus power (typically limited to 500 mA total across shared ports) or external self-power.
Selective Suspend and Registry Control
Windows 2000 introduced an early implementation of USB Selective Suspend. This feature allows the hub driver to suspend an individual downstream port that is not in use without powering down the entire root hub or disrupting other active devices on the bus.
In environments where devices encounter connectivity or sleep-wake issues, administrators can modify power behavior directly through the Windows Registry. By navigating to the driver service key:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\USB
Administrators can configure the DWORD value
HcDisableSelectiveSuspend:
- A value of
1globally disables selective suspend across host controllers, forcing root hubs and ports to remain powered. - A value of
0retains normal power-saving suspend behaviors.
Wake Capabilities
Windows 2000 supports remote wakeup protocols defined by the USB and ACPI specifications. If a root hub and its attached peripheral (such as a USB mouse or keyboard) support remote wakeup, the power management stack allows the peripheral to signal the host controller via resume signaling on the bus. The host controller then generates an interrupt or power management event (PME) to transition the root hub back to the D0 state and, if applicable, bring the operating system out of standby.