Fonction PoStartNextPowerIrp (wdm.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 Disponible à partir de Windows 2000.
Plateforme cible Universal
En-tête wdm.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