Condividi tramite


Stato del dispositivo

Il membro DeviceState di DEVICE_CAPABILITIES è una matrice di valori DEVICE_POWER_STATE indicizzati da SYSTEM_POWER_STATE valori compresi tra PowerSystemWorking e PowerSystemShutdown. Ogni elemento della matrice contiene lo stato di alimentazione massimo (con potenza massima) del dispositivo che il dispositivo può supportare per lo stato di alimentazione del sistema indicato dall'indice o PowerDeviceUnspecified se lo stato di alimentazione del sistema non è supportato.

Ad esempio, in un sistema che supporta solo gli stati di alimentazione del sistema S0, S4 e S5, la matrice DeviceState per un dispositivo che supporta solo gli stati D0 e D3 contiene i valori illustrati nella tabella seguente.

Elemento DeviceState Valore

DeviceState[PowerSystemWorking]

PowerDeviceD0

DeviceState[PowerSystemSleeping1]

PowerDeviceUnspecified

DeviceState[PowerSystemSleeping2]

PowerDeviceUnspecified

DeviceState[PowerSystemSleeping3]

PowerDeviceUnspecified

DeviceState[PowerSystemHibernate]

PowerDeviceD3

DeviceState[PowerSystemShutdown]

PowerDeviceD3

In un sistema che supporta tutti gli stati di alimentazione del sistema, la tabella seguente elenca i valori che la matrice contiene per un dispositivo che deve trovarsi nello stato D2 o inferiore ogni volta che il sistema passa a qualsiasi stato di sospensione intermedio e nello stato D3 quando il sistema si iberna.

Elemento DeviceState Valore

DeviceState[PowerSystemWorking]

PowerDeviceD0

DeviceState[PowerSystemSleeping1]

PowerDeviceD2

DeviceState[PowerSystemSleeping2]

PowerDeviceD2

DeviceState[PowerSystemSleeping3]

PowerDeviceD2

DeviceState[PowerSystemHibernate]

PowerDeviceD3

DeviceState[PowerSystemShutdown]

PowerDeviceD3

Si noti che le voci nella matrice DeviceState indicano lo stato di alimentazione del dispositivo più alto che il dispositivo può supportare per lo stato di alimentazione del sistema corrispondente. Nell'esempio precedente, il dispositivo potrebbe trovarsi nello stato D3 per qualsiasi stato di alimentazione del sistema, stato D2 per gli stati di alimentazione del sistema PowerSystemWorking tramite PowerSystemSleeping3 e stato D1 per lo stato del sistema PowerSystemWorking.

Il filtro driver o ACPI del bus imposta questi valori in base alle funzionalità del nodo del dispositivo padre.

Come regola generale, i driver di livello superiore non devono modificare questi valori. Tuttavia, nelle rare circostanze in cui è necessaria una modifica di questo tipo, un driver può specificare uno stato più basso (meno alimentato) rispetto a quanto restituito originariamente dal driver del bus o dal filtro ACPI. Si supponga, ad esempio, che DeviceState[PowerSystemSleeping1] sia mappato a PowerDeviceD2, come nella tabella precedente. Un driver può modificare questo valore in PowerDeviceD3, ma non in PowerDeviceD1 o PowerDeviceD0.