From a power management perspective, a PCI device can support up to 4 power management states: D0, D1, D2, and D3. The higher the number of the state, the more aggressive the power savings.
All PCI functions must support the D0 state. D0 is simply an "ON" state, with two subsets: un-initialized and initialized. When the device is powered on, it is in the un-initialized state; it makes the transition to the initialized state after being initialized by the system software.
Implementation of the D1 power management state is optional. D1 is used as a "light sleep" state. Some functions may be processing background tasks (i.e., monitoring the network, etc.), which actually requires most of the function to be active. The D1 state must respond to PCI configuration space access.
Implementation of the D2 power management state is optional. When a PCI function is not currently being used and probably will not be used for some time, it may be put into D2. This state requires the function to provide significant power savings. D2 state must respond to PCI configuration space access.
NOTE: The PCI Power Management Specification V1.1 is backwards-compatible with PCI specs V2.0 and V2.1.
All PCI functions must support D3. This state has two subsets: D3hot and D3cold. If a function is in D3hot, it must respond to configuration space accesses as long as power and clock are supplied so that they can be returned to D0 by software. A function is in D3cold simply if VCC is removed from it.