Panoramica dell'operazione di attesa/riattivazione
Il meccanismo di riattivazione del sistema operativo funziona come illustrato nella figura seguente.
Mentre il sistema e il dispositivo si trovano nello stato di lavoro, il proprietario dei criteri di alimentazione per un dispositivo determina che il suo dispositivo deve essere abilitato ("armato") per la riattivazione. Il proprietario di power policy richiede l'invio di un'alimentazione IRP (PoRequestPowerIrp con codice secondario IRP_MN_WAIT_WAKE) al proprio PDO per informare tutti i driver nello stack di dispositivi. Nella richiesta, il proprietario del criterio specifica una routine di callback (non uguale a una routine IoCompletion ).
Il risparmio energia, tramite gestione I/O, invia l'IRP all'inizio dello stack di dispositivi.
I driver impostano routine IoCompletion e passano l'IRP verso il basso finché non raggiunge il driver del bus.
Il driver del bus abilita la riattivazione sul dispositivo fisico, se può e contrassegna l'IRP in sospeso. Se necessario, richiede anche un'IRP di attesa/riattivazione per il relativo padre.
In un secondo momento, arriva un segnale di riattivazione esterno.
Il conducente del bus completa il IRP_MN_WAIT_WAKE.
Gestione I/O chiama routine IoCompletion impostate come driver passati lo stack.
Gestione I/O chiama la routine di callback impostata dal proprietario dei criteri quando ha richiesto l'IRP.
La richiesta di IRP_MN_WAIT_WAKE non modifica lo stato di alimentazione del dispositivo o del sistema. Consente semplicemente di riattivare il dispositivo in modo che in seguito, se il dispositivo entra in uno stato di sospensione appropriato, un segnale esterno causerà il risveglio del dispositivo (e possibilmente il sistema).
Quando arriva un segnale di riattivazione, il comportamento dei driver è lo stesso se il dispositivo riattiva il sistema o solo se stesso. Se il dispositivo è abilitato per la riattivazione e il sistema si trova in uno stato di sospensione da cui il dispositivo può riattivarlo, il dispositivo risveglierà il sistema. Se il dispositivo è abilitato per la riattivazione e il sistema si trova nello stato di lavoro, solo il dispositivo si risveglierà.
Poiché i computer e i dispositivi variano in progettazione, in particolare rispetto ai piani di alimentazione, agli stati di alimentazione del sistema e del dispositivo supportati, e quindi agli stati che possono supportare l'attesa/riattivazione, non sono uguali in tutte le configurazioni hardware. Pertanto, qualsiasi driver che possiede i criteri di alimentazione per il dispositivo e ogni conducente del bus deve prestare attenzione alle funzionalità della singola configurazione in cui è in esecuzione. Per altre informazioni, vedere Determinazione del fatto che un dispositivo possa riattivare il sistema.
Per ulteriori dettagli sulle operazioni di attesa/riattivazione, vedere Informazioni sul percorso di attesa/riattivazione degli IRP tramite un albero dei dispositivi e una panoramica del completamento dell'IRP di attesa/riattivazione.