Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In risposta a un IRP di impostazione dell'alimentazione del sistema, il proprietario dei criteri di alimentazione per uno stack di dispositivi è responsabile di portare lo stack di dispositivi in uno stato di alimentazione appropriato del dispositivo.
Come regola generale, quando un proprietario della politica di gestione dell'energia del dispositivo riceve un IRP_MN_SET_POWER per uno stato di alimentazione del sistema, deve rispondere passando l'IRP di alimentazione del sistema attraverso lo stack dei dispositivi. Un proprietario dei criteri di risparmio energia del dispositivo deve anche rispondere inviando lo stack di dispositivi IRP_MN_SET_POWER per uno stato di alimentazione del dispositivo corrispondente in una routine IoCompletion. Dopo che tutti i driver nello stack hanno completato l'IRP di impostazione della potenza del dispositivo, il proprietario dei criteri di alimentazione del dispositivo completa l'IRP di impostazione della potenza del sistema.
Tuttavia, per migliorare le prestazioni di ripresa del sistema, i responsabili della gestione dell'alimentazione dei dispositivi per dispositivi senza dispositivi subordinati devono usare un approccio diverso per ridurre il tempo necessario a un sistema per tornare allo stato operativo S0 da uno stato di sospensione . In questo caso, in risposta a un IRP di alimentazione del sistema che restituisce un sistema allo stato di lavoro S0, i proprietari dei criteri di alimentazione dei dispositivi devono eseguire la sequenza di operazioni seguente:
Dopo aver ricevuto un IRP_MN_SET_POWER IRP per lo stato di alimentazione del sistema S0 nella routine DispatchPower del driver, impostare una routine IoCompletion per l'IRP e passare l'IRP verso il basso nello stack.
Nel IoCompletion routine impostata nel passaggio (1), richiedere un IRP IRP_MN_SET_POWER per lo stato di alimentazione del dispositivo corrispondente e quindi completare immediatamente l'IRP di alimentazione del sistema. Il driver non deve attendere che gli IRP di impostazione dell'alimentazione del dispositivo siano completati prima di completare l'IRP di impostazione dell'alimentazione del sistema. La routine IoCompletion viene eseguita dopo che tutti i driver di livello inferiore hanno completato l'IRP di impostazione dell'alimentazione del sistema e l'IRP di impostazione dell'alimentazione del sistema viene restituito all'oggetto dispositivo funzionale (FDO) del driver.
Eseguire qualsiasi inizializzazione specifica del dispositivo richiesta.
Completare l'IRP di impostazione della potenza del dispositivo inviato nel passaggio (2).
Elaborare le richieste di I/O accodate quando il dispositivo era in uno stato di sospensione .
Il gestore dell'energia del kernel ha un set limitato di code di distribuzione IRP e deve notificare rapidamente tutti i dispositivi nel sistema, del ritorno allo stato di funzionamento del sistema S0. I driver che non riescono a completare l'IRP di alimentazione del sistema il più rapidamente possibile impediscono ad altri dispositivi di ottenere il proprio IRP di alimentazione del sistema, che può influire negativamente sulle prestazioni complessive del sistema durante le transizioni di stato di alimentazione del sistema.
Per ulteriori dettagli sulla gestione degli IRPs di set-power del sistema, vedere quanto segue:
Determinare lo stato di alimentazione del dispositivo corretto
Invio di un Set-Power IRP del dispositivo in risposta a un Set-Power IRP di sistema