Condividi tramite


Determinazione dello stato di alimentazione del dispositivo corretto

Il proprietario dei criteri di risparmio energia controlla la matrice DeviceState nella struttura DEVICE_CAPABILITIES per determinare l'intervallo valido di stati di alimentazione del dispositivo per ogni stato di alimentazione del sistema. La matrice elenca lo stato di potenza del dispositivo più alto che il dispositivo sottostante può supportare per ogni stato di alimentazione del sistema.

Quando si sceglie uno stato specifico da questo intervallo, tenere presente quanto segue:

  • La maggior parte dei dispositivi entra nello stato D0 quando il sistema entra nello stato S0.

  • La maggior parte dei dispositivi entra nello stato D3 quando il sistema entra in stato di sospensione. Tuttavia, un dispositivo abilitato per la riattivazione potrebbe essere necessario immettere invece D1 o D2, se supporta tali stati. Per altre informazioni, vedere Reporting Device Power Capabilities.For further information, see Reporting Device Power Capabilities.

  • Si applicano regole speciali per il dispositivo che conterrà il file di ibernazione. Se l'IRP di sistema richiede PowerSystemHibernate, il dispositivo che conterrà il file di ibernazione non deve essere spento. Il proprietario dei criteri di alimentazione per un dispositivo di questo tipo deve richiedere lo stato di alimentazione del dispositivo D3 e salvare il contesto, ma i driver del dispositivo non devono spegnere il dispositivo.

Se l'IRP di sistema richiede PowerSystemShutdown, il driver deve controllare il valore POWER_ACTION in Irp-Parameters.Power.ShutdownType> per determinare il motivo della modifica dello stato. Per altre informazioni, vedere System Power Actions.For further information, see System Power Actions.

Il proprietario dei criteri di risparmio energia del dispositivo deve inviare un IRP di alimentazione del set di dispositivi per ogni IRP di alimentazione del sistema, anche se il dispositivo è già nello stato di alimentazione corretto del dispositivo. Se il driver ha sospeso in precedenza le operazioni del dispositivo in risposta a un IRP di potenza di query, l'IRP di accensione imposta notifica all'utente di arrestare l'accodamento dei runtime di integrazione e tornare al normale funzionamento per il relativo stato di alimentazione corrente. L'unica eccezione si verifica quando il dispositivo si trova nello stato D3; in questo caso, il driver non deve inviare una richiesta di IRP_MN_SET_POWER aggiuntiva per D3.