How Windows 2000 Handles ACPI Power States

Microsoft Windows 2000 was the first operating system in the Windows NT lineage to natively integrate the Advanced Configuration and Power Interface (ACPI) specification. This article examines how Windows 2000 shifted power management from the hardware BIOS to the operating system, detailing its implementation of Operating System-directed configuration and Power Management (OSPM), system sleep states (S-states), and individual device states (D-states) on desktop architectures.

The Shift to Operating System-Directed Power Management (OSPM)

Prior to Windows 2000, power management on NT systems relied on the Advanced Power Management (APM) BIOS, which operated with limited awareness of running applications and peripheral states. Windows 2000 implemented ACPI to take direct control of power policy via its native ACPI.sys bus driver and the kernel-mode Power Manager.

During boot, Windows 2000 determines whether the desktop motherboard contains an ACPI-compliant BIOS (typically verified against an internal BIOS "good list" and a firmware date later than January 1, 1999). If compliant, the system installs the ACPI Hardware Abstraction Layer (HAL). This architecture allows the OS to coordinate power transitions dynamically, responding to hardware events, application requests, and user-configured idle timers.

Global and System Sleep States (S-States)

Windows 2000 maps desktop operating conditions to standard ACPI system sleep states:

  • S0 (Working): The desktop is fully powered and operational. Devices enter and exit low-power modes dynamically based on usage.
  • S1 (Standby / Pos): A light sleep state where the processor clock is stopped, but CPU and system context are maintained. Power to RAM and the CPU remains active, allowing an almost instantaneous resume.
  • S3 (Standby / Suspend to RAM): The system state is retained in main memory, while power is cut to the processor, chipset, expansion buses, and cooling fans. This is the primary low-power standby state for desktop systems, resuming in seconds.
  • S4 (Hibernate / Suspend to Disk): Windows 2000 writes the active memory contents to a hidden system file (hiberfil.sys) on the boot drive. The power supply then transitions to an off state. Upon pressing the power button, the NT loader (NTLDR) reads the hibernation image back into RAM, restoring the exact user session without consuming power during the interim.
  • S5 (Soft Off): The machine is completely shut down via software. No system context is saved, though the power supply maintains trickle voltage to support wake events (such as Wake-on-LAN or the chassis power switch).

Device Power States (D-States)

The Windows 2000 Power Manager manages individual peripherals independently of the overall system state through four device power states:

  • D0 (Fully On): The device is fully functional and consuming standard operational power.
  • D1 and D2 (Intermediate Sleep States): Low-power states defined on a per-device-class basis. These states preserve device context while reducing power consumption, though they are rarely utilized by standard desktop add-in cards.
  • D3 (Off): Power is removed from the device. Windows 2000 classifies this into D3hot (auxiliary power available for wake signals) and D3cold (complete power removal). Device context is lost and must be reinitialized upon transition back to D0.

Power IRP Coordination and Policy

To execute power transitions, the Windows 2000 Power Manager utilizes power I/O Request Packets (Power IRPs) containing the major function code IRP_MJ_POWER.

When the desktop prepares to enter a sleep state (such as S3), the Power Manager issues a system power IRP (IRP_MN_SET_POWER with a SystemPowerState parameter). Device drivers process this notification and cascade individual device power IRPs to their respective hardware, stepping peripherals down to D3 before the core chipset enters the target S-state.

When an external wake event occurs—such as keyboard input, mouse movement, or a network packet—the ACPI controller asserts a Power Management Event (PME) or System Control Interrupt (SCI). The Windows 2000 ACPI driver intercepts this signal, awakens the CPU, and traverses the driver stack in reverse, issuing D0 requests to restore all desktop devices to full operation.