Fonction PoStartNextPowerIrp (ntifs.h)
La routine PoStartNextPowerIrp indique au gestionnaire d’alimentation que le pilote est prêt à gérer la prochaine IRP d’alimentation. (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 principale est IRP_MJ_POWER.
Valeur de retour
None
Remarques
À compter de Windows Vista, le pilote n’est pas obligé d’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 de périphériques une fois que le pilote a terminé l’IRP d’alimentation précédente, le cas échéant, et est prêt à gérer l’IRP d’alimentation suivante. Il doit être appelé une fois par chaque pilote pour chaque demande IRP_MN_QUERY_POWER ou IRP_MN_SET_POWER .
Bien que les IRP 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 de périphériques doit appeler PoStartNextPowerIrp lorsque l’IRP descend ou remonte la pile. Même si un pilote échoue à l’IRP, il doit néanmoins appeler PoStartNextPowerIrp pour signaler au gestionnaire d’alimentation qu’il est prêt à gérer une autre IRP d’alimentation.
Le pilote doit appeler PoStartNextPowerIrp alors que l’emplacement actuel de la pile IRP pointe vers le pilote actuel. Par conséquent, cette routine doit être appelée avant IoCompleteRequest, IoSkipCurrentIrpStackLocation et 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 transmise à PoRequestPowerIrp.
Les pilotes de bus doivent appeler PoStartNextPowerIrp avant d’effectuer chaque IRP.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000. |
Plateforme cible | Universal |
En-tête | ntifs.h (inclure Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <=DISPATCH_LEVEL |