DeviceState
Das DeviceState-Element von DEVICE_CAPABILITIES ist ein Array von DEVICE_POWER_STATE Werten, die von SYSTEM_POWER_STATE Werten von PowerSystemWorking bis PowerSystemShutdown indiziert werden. Jedes Element des Arrays enthält den maximalen (leistungsstärksten) Geräteleistungszustand, den das Gerät für den vom Index bezeichneten Systemleistungszustand unterstützen kann, oder PowerDeviceUnspecified , wenn der Systemstromzustand nicht unterstützt wird.
In einem System, das nur die Systemstromzustände S0, S4 und S5 unterstützt, enthält das DeviceState-Array für ein Gerät, das nur die Zustände D0 und D3 unterstützt, die in der folgenden Tabelle dargestellten Werte.
DeviceState-Element | Wert |
---|---|
DeviceState[PowerSystemWorking] |
PowerDeviceD0 |
DeviceState[PowerSystemSleeping1] |
PowerDeviceUnspecified |
DeviceState[PowerSystemSleeping2] |
PowerDeviceUnspecified |
DeviceState[PowerSystemSleeping3] |
PowerDeviceUnspecified |
DeviceState[PowerSystemHibernate] |
PowerDeviceD3 |
DeviceState[PowerSystemShutdown] |
PowerDeviceD3 |
In einem System, das alle Systemleistungszustände unterstützt, werden in der folgenden Tabelle die Werte aufgeführt, die das Array für ein Gerät enthalten würde, das sich im D2-Zustand oder niedriger befinden muss, wenn das System in einen zwischengeschalteten Ruhezustand wechselt, und im Zustand D3, wenn das System in den Ruhezustand versetzt wird.
DeviceState-Element | Wert |
---|---|
DeviceState[PowerSystemWorking] |
PowerDeviceD0 |
DeviceState[PowerSystemSleeping1] |
PowerDeviceD2 |
DeviceState[PowerSystemSleeping2] |
PowerDeviceD2 |
DeviceState[PowerSystemSleeping3] |
PowerDeviceD2 |
DeviceState[PowerSystemHibernate] |
PowerDeviceD3 |
DeviceState[PowerSystemShutdown] |
PowerDeviceD3 |
Beachten Sie, dass die Einträge im DeviceState-Array den höchsten Geräteleistungszustand angeben, den das Gerät für den entsprechenden Systemleistungszustand unterstützen kann. Im vorherigen Beispiel könnte das Gerät den Status D3 für jeden Systemstromzustand, den Status D2 für die Systemleistungszustände PowerSystemWorking über PowerSystemSleeping3 und den Status D1 für den Systemzustand PowerSystemWorking aufweisen.
Der Bustreiber oder ACPI-Filter legt diese Werte basierend auf den Funktionen des übergeordneten Geräteknotens fest.
In der Regel sollten treiber auf höherer Ebene diese Werte nicht ändern. In den seltenen Fällen, unter denen eine solche Änderung erforderlich ist, kann ein Treiber jedoch einen niedrigeren Zustand (mit weniger Leistung) als der ursprünglich zurückgegebene Bustreiber oder ACPI-Filter angeben. Angenommen, DeviceState[PowerSystemSleeping1] wird wie in der obigen Tabelle powerDeviceD2 zugeordnet. Ein Treiber kann diesen Wert in PowerDeviceD3, aber nicht in PowerDeviceD1 oder PowerDeviceD0 ändern.