Gestione dei provider di servizi di integrazione di alimentazione
I driver gestiscono gli IRP di alimentazione in una routine DispatchPower . Tutte le richieste di risparmio energia hanno il codice IRP principale IRP_MJ_POWER e uno dei codici secondari seguenti:
IRP_MN_QUERY_POWER - Query per determinare se è possibile modificare lo stato di alimentazione
IRP_MN_SET_POWER : richiede una modifica da uno stato di alimentazione a un altro
IRP_MN_WAIT_WAKE : richiede che un dispositivo sia abilitato per riattivarsi o per il sistema
IRP_MN_POWER_SEQUENCE : richiede informazioni per ottimizzare il ripristino dell'alimentazione in un determinato dispositivo
È necessario il supporto per IRP_MN_SET_POWER e IRP_MN_QUERY_POWER . Tutti i driver devono essere preparati per gestire questi IRP.
Il supporto per IRP_MN_WAIT_WAKE è necessario per tutti i driver nello stack di dispositivi per qualsiasi dispositivo che può svegliarsi in risposta a un segnale esterno. Un driver invia questo IRP per abilitare il dispositivo per la riattivazione.
Il supporto per IRP_MN_POWER_SEQUENCE è facoltativo. Questo IRP offre un'ottimizzazione per i dispositivi che richiedono molto tempo per ripristinare la potenza.
Un'IRP di alimentazione può specificare un'operazione di alimentazione del sistema o un'operazione di alimentazione del dispositivo. Power IRP per il sistema e l'alimentazione di IRP per i singoli dispositivi accettano percorsi leggermente diversi tramite uno stack di dispositivi, come illustrato nelle sezioni seguenti.