DeviceState
DEVICE_CAPABILITIES的DeviceState成員是DEVICE_POWER_STATE值的陣列,由SYSTEM_POWER_STATE值編制索引,範圍從PowerSystemWorking到PowerSystemShutdown。 陣列的每個元素都包含 (最高電源) 裝置電源狀態的最大值,如果不支援系統電源狀態,則裝置可以支援索引所表示的系統電源狀態,或 不支援 PowerDeviceUnspecified 。
例如,在僅支援 S0、S4 和 S5 系統電源狀態的系統上,僅支援 D0 和 D3 狀態之裝置的 DeviceState 陣列包含下表所示的值。
DeviceState 元素 | 值 |
---|---|
DeviceState[PowerSystemWorking] |
PowerDeviceD0 |
DeviceState[PowerSystemSleeping1] |
PowerDeviceUnspecified |
DeviceState[PowerSystemSleeping2] |
PowerDeviceUnspecified |
DeviceState[PowerSystemSleeping3] |
PowerDeviceUnspecified |
DeviceState[PowerSystemHibernate] |
PowerDeviceD3 |
DeviceState[PowerSystemShutdown] |
PowerDeviceD3 |
在支援所有系統電源狀態的系統上,下表列出當系統進入任何中繼睡眠狀態和系統休眠狀態時,陣列會包含的裝置必須處於 D2 狀態或更低狀態的值。
DeviceState 元素 | 值 |
---|---|
DeviceState[PowerSystemWorking] |
PowerDeviceD0 |
DeviceState[PowerSystemSleeping1] |
PowerDeviceD2 |
DeviceState[PowerSystemSleeping2] |
PowerDeviceD2 |
DeviceState[PowerSystemSleeping3] |
PowerDeviceD2 |
DeviceState[PowerSystemHibernate] |
PowerDeviceD3 |
DeviceState[PowerSystemShutdown] |
PowerDeviceD3 |
請注意, DeviceState 陣列中的專案表示裝置可以支援對應系統電源狀態的最高裝置電源狀態。 在上述範例中,裝置可以是任何系統電源狀態的狀態 D3、透過PowerSystemSleeping3的系統電源狀態PowerSystemWorking的狀態 D2,以及系統狀態PowerSystemWorking的狀態 D1 。
匯流排驅動程式或 ACPI 篩選準則會根據父裝置節點的功能來設定這些值。
一般而言,較高層級的驅動程式不應該變更這些值。 不過,在需要這類變更的罕見情況下,驅動程式可以指定比原先傳回的匯流排驅動程式或 ACPI 篩選器低 (低) 狀態。 例如,假設 DeviceState[PowerSystemSleeping1] 會對應至 PowerDeviceD2,如上表所示。 驅動程式可以將此值變更為 PowerDeviceD3,但不能變更為 PowerDeviceD1 或 PowerDeviceD0。