Invio di un IRP di attesa/riattivazione
Il codice IRP di alimentazione secondaria IRP_MN_WAIT_WAKE fornisce la riattivazione di un dispositivo o la riattivazione del sistema. Driver di dispositivi che possono riattivare sé stessi o il sistema inviano richieste IRP_MN_WAIT_WAKE. Il sistema invia IRP_MN_WAIT_WAKE richieste solo ai dispositivi che riattivano sempre il sistema, ad esempio l'interruttore di accensione.
Un driver invia una richiesta di IRP_MN_WAIT_WAKE per uno dei due motivi seguenti:
Il dispositivo deve essere in grado di tornare allo stato di lavoro da uno stato di sospensione in risposta a un segnale di riattivazione esterno.
Ad esempio, il driver di un modem potrebbe inviarlo un IRP di attesa/riattivazione prima di impostarlo nello stato di alimentazione D1 per risparmiare energia. L'IRP di attesa/riattivazione consente al modem di rispondere a una chiamata in ingresso.
Il dispositivo deve essere in grado di riattivare il sistema in risposta a un segnale di riattivazione.
Quando il sistema passa alla sospensione, il modem potrebbe rimanere nello stato D1 con un IRP_MN_WAIT_WAKE in sospeso. In questo caso, una chiamata in ingresso riattiva il sistema e il modem.
Indipendentemente dal fatto che un dispositivo sia pronto a riattivarsi da solo o a riattivare il sistema, le azioni che i driver devono eseguire sono le stesse. La differenza principale consiste nel modo in cui il dispositivo e l'hardware di sistema rispondono al segnale di riattivazione iniziale. Il comportamento del driver è lo stesso in entrambi i casi.