Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Element DeviceState w DEVICE_CAPABILITIES jest tablicą wartości typu DEVICE_POWER_STATE, indeksowanych według wartości SYSTEM_POWER_STATE od PowerSystemWorking do PowerSystemShutdown. Każdy element tablicy zawiera maksymalny stan zasilania urządzenia (najwyższy poziom mocy), który może być obsługiwany dla stanu zasilania systemu oznaczonego przez indeks, lub PowerDeviceUnspecified, jeśli stan zasilania systemu nie jest obsługiwany.
Na przykład w systemie obsługującym tylko stany zasilania systemu S0, S4 i S5 tablica DeviceState dla urządzenia obsługującego tylko stany D0 i D3 zawiera wartości przedstawione w poniższej tabeli.
| DeviceState, element | Wartość |
|---|---|
DeviceState[PowerSystemWorking] |
PowerDeviceD0 |
DeviceState[PowerSystemSleeping1] |
PowerDeviceUnspecified |
DeviceState[PowerSystemSleeping2] |
PowerDeviceUnspecified |
DeviceState[PowerSystemSleeping3] |
PowerDeviceUnspecified |
DeviceState[PowerSystemHibernate] |
PowerDeviceD3 |
DeviceState[PowerSystemShutdown] |
PowerDeviceD3 |
W systemie obsługującym wszystkie stany zasilania systemu poniższa tabela pokazuje wartości tablicy dla urządzenia, które musi znajdować się w stanie D2 lub niższym, gdy system przechodzi do dowolnego pośredniego stanu uśpienia, oraz w stanie D3, gdy system przechodzi w stan hibernacji.
| Element DeviceState | Wartość |
|---|---|
DeviceState[PowerSystemWorking] |
PowerDeviceD0 |
DeviceState[PowerSystemSleeping1] |
PowerDeviceD2 |
DeviceState[PowerSystemSleeping2] |
PowerDeviceD2 |
DeviceState[PowerSystemSleeping3] |
PowerDeviceD2 |
DeviceState[PowerSystemHibernate] |
PowerDeviceD3 |
DeviceState[PowerSystemShutdown] |
PowerDeviceD3 |
Należy pamiętać, że wpisy w tablicy DeviceState oznaczają najwyższy stan zasilania urządzenia, który może obsługiwać odpowiedni stan zasilania systemu. W poprzednim przykładzie urządzenie może być w stanie D3 dla dowolnego stanu zasilania systemu, w stanie D2 dla stanów zasilania systemu od PowerSystemWorking do PowerSystemSleeping3, i w stanie D1 dla stanu systemu PowerSystemWorking.
Filtr sterownika magistrali lub ACPI ustawia te wartości na podstawie możliwości węzła urządzenia nadrzędnego.
Ogólnie rzecz biorąc, sterowniki wyższego poziomu nie powinny zmieniać tych wartości. Jednak w rzadkich okolicznościach, w których taka zmiana jest konieczna, sterownik może określić stan o niższym poborze mocy niż ten zwrócony przez sterownik magistrali lub filtr ACPI. Załóżmy na przykład, że DeviceState[PowerSystemSleeping1] odpowiada PowerDeviceD2, jak w powyższej tabeli. Sterownik może zmienić tę wartość na PowerDeviceD3, ale nie na PowerDeviceD1 lub PowerDeviceD0.