Condividi tramite


Funzione PoStartNextPowerIrp (ntifs.h)

La routine PoStartNextPowerIrp segnala al gestore energia che il driver è pronto per gestire l'IRP di alimentazione successiva. (Solo Windows Server 2003, Windows XP e Windows 2000).

Sintassi

void PoStartNextPowerIrp(
  [in, out] PIRP Irp
);

Parametri

[in, out] Irp

Puntatore a un IRP in cui il codice della funzione principale è IRP_MJ_POWER.

Valore restituito

nessuno

Osservazioni

A partire da Windows Vista, il driver non è necessario per chiamare PoStartNextPowerIrp e una chiamata a questa routine non esegue un'operazione di risparmio energia. Tuttavia, in Windows Server 2003, Windows XP e Windows 2000, PoStartNextPowerIrp deve essere chiamato da ogni driver in uno stack di dispositivi dopo che il driver è terminato con l'IRP di alimentazione precedente, se presente, ed è pronto per gestire la successiva alimentazione IRP. Deve essere chiamato una volta da ogni driver per ogni richiesta di IRP_MN_QUERY_POWER o di IRP_MN_SET_POWER .

Anche se i runtime di integrazione di alimentazione vengono completati una sola volta, in genere dal driver del bus per un dispositivo, ogni driver nello stack di dispositivi deve chiamare PoStartNextPowerIrp mentre l'IRP viaggia verso il basso o esegue il backup dello stack. Anche se un driver non riesce l'IRP, il driver deve comunque chiamare PoStartNextPowerIrp per segnalare al risparmio energia che è pronto per gestire un altro IRP di alimentazione.

Il driver deve chiamare PoStartNextPowerIrp mentre il percorso dello stack IRP corrente punta al driver corrente. Pertanto, questa routine deve essere chiamata prima di IoCompleteRequest, IoSkipCurrentIrpStackLocation e PoCallDriver. Come regola generale, un driver deve chiamare PoStartNextPowerIrp dalla routine IoCompletion associata all'IRP o dalla routine di callback passata a PoRequestPowerIrp.

I driver del bus devono chiamare PoStartNextPowerIrp prima di completare ogni IRP.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000.
Piattaforma di destinazione Universale
Intestazione ntifs.h (include Wdm.h, Ntddk.h, Ntifs.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=DISPATCH_LEVEL

Vedi anche

IRP

IRP_MJ_POWER

IRP_MN_QUERY_POWER

IRP_MN_SET_POWER

IoCompleteRequest

IoSkipCurrentIrpStackLocation

PoCallDriver

PoRequestPowerIrp