Chiamata di PoStartNextPowerIrp da un driver di filtro
A partire da Windows Vista, la chiamata a PoStartNextPowerIrp non è necessaria e la chiamata a questa routine non esegue alcuna operazione di risparmio energia. Tuttavia, in Windows Server 2003, Windows XP e Windows 2000, un driver di filtro deve chiamare PoStartNextPowerIrp una volta per ogni IRP_MN_QUERY_POWER o IRP_MN_SET_POWER richiesta ricevuta dal driver. Quando si verifica la chiamata dipende dal tipo di richiesta e dal fatto che il driver avrà esito negativo o esito positivo della richiesta, come illustrato nella tabella seguente.
Tipo di richiesta | Se il driver riesce alla richiesta, viene eseguita la chiamata: | Se il driver non riesce la richiesta, viene eseguita la chiamata: |
---|---|---|
IRP_MN_QUERY_POWER (stato di alimentazione del dispositivo) |
In una routine IoCompletion , immediatamente prima di tornare. |
Nella routine DispatchPower prima di chiamare IoCompleteRequest. |
IRP_MN_QUERY_POWER (stato di alimentazione del sistema) |
Nella routine DispatchPower , dopo aver acquisito il blocco e prima di impostare la posizione dello stack IRP. |
Nella routine DispatchPower prima di chiamare IoCompleteRequest. |
IRP_MN_SET_POWER (stato di alimentazione del dispositivo) |
In una routine IoCompletion , immediatamente prima di tornare. |
Non consentiti. |
IRP_MN_SET_POWER (stato di alimentazione del sistema) |
Nella routine DispatchPower , dopo aver acquisito il blocco e prima di impostare la posizione dello stack IRP. |
Non consentiti. |