Partager via


Fonction PoStartNextPowerIrp (ntifs.h)

La routine PoStartNextPowerIrp signale le power manager que le pilote est prêt à gérer la prochaine iRP de puissance. (Windows Server 2003, Windows XP et Windows 2000 uniquement.)

Syntaxe

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

Paramètres

[in, out] Irp

Pointeur vers un IRP dans lequel le code de fonction principal est IRP_MJ_POWER.

Valeur de retour

Aucun

Remarques

À compter de Windows Vista, le pilote n’est pas nécessaire pour appeler PoStartNextPowerIrp et un appel à cette routine n’effectue pas d’opération de gestion de l’alimentation. Toutefois, sur Windows Server 2003, Windows XP et Windows 2000, PoStartNextPowerIrp doit être appelé par chaque pilote d’une pile d’appareils une fois que le pilote a terminé l’IRP d’alimentation précédent, le cas échéant, et est prêt à gérer le prochain IRP d’alimentation. Il doit être appelé une fois par chaque pilote pour chaque demande de IRP_MN_QUERY_POWER ou de IRP_MN_SET_POWER.

Bien que les irps d’alimentation ne soient effectuées qu’une seule fois, généralement par le pilote de bus d’un appareil, chaque pilote de la pile d’appareils doit appeler PoStartNextPowerIrp lorsque l’IRP se déplace vers le bas ou sauvegarde la pile. Même si un pilote échoue l’IRP, le pilote doit néanmoins appeler PoStartNextPowerIrp pour signaler au gestionnaire d’alimentation qu’il est prêt à gérer un autre IRP d’alimentation.

Le pilote doit appeler PoStartNextPowerIrp tandis que l’emplacement actuel de la pile IRP pointe vers le pilote actuel. Par conséquent, cette routine doit être appelée avant IoCompleteRequest, IoSkipCurrentIrpStackLocationet poCallDriver. En règle générale, un pilote doit appeler PoStartNextPowerIrp à partir de sa routine IoCompletion associée à l’IRP ou de la routine de rappel qu’il a passée à PoRequestPowerIrp.

Les pilotes de bus doivent appeler PoStartNextPowerIrp avant de terminer chaque IRP.

Exigences

Exigence Valeur
client minimum pris en charge Windows 2000.
plateforme cible Universel
d’en-tête ntifs.h (include Wdm.h, Ntddk.h, Ntifs.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=DISPATCH_LEVEL

Voir aussi

IRP

IRP_MJ_POWER

IRP_MN_QUERY_POWER

IRP_MN_SET_POWER

IoCompleteRequest

IoSkipCurrentIrpStackLocation

PoCallDriver

PoRequestPowerIrp