PoStartNextPowerIrp-Funktion (ntifs.h)

Die PoStartNextPowerIrp-Routine signalisiert dem Energie-Manager , dass der Treiber bereit ist, die nächste Energie-IRP zu verarbeiten. (Nur Windows Server 2003, Windows XP und Windows 2000.)

Syntax

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

Parameter

[in, out] Irp

Ein Zeiger auf eine IRP, in der der Hauptfunktionscode IRP_MJ_POWER wird.

Rückgabewert

Keine

Bemerkungen

Ab Windows Vista ist der Treiber nicht erforderlich, PoStartNextPowerIrp aufzurufen, und ein Aufruf dieser Routine führt keinen Energieverwaltungsvorgang aus. Unter Windows Server 2003, Windows XP und Windows 2000 muss PoStartNextPowerIrp jedoch von jedem Treiber in einem Gerätestapel aufgerufen werden, nachdem der Treiber mit dem vorherigen Energie-IRP (sofern vorhanden) fertig ist und bereit ist, die nächste Energie-IRP zu verarbeiten. Er muss von jedem Treiber einmal für jede IRP_MN_QUERY_POWER - oder IRP_MN_SET_POWER-Anforderung aufgerufen werden.

Obwohl Power IRPs nur einmal abgeschlossen werden, in der Regel vom Bustreiber für ein Gerät, muss jeder Treiber im Gerätestapel PoStartNextPowerIrp aufrufen, während der IRP den Stapel nach unten bewegt oder wieder hochgefahren wird. Selbst wenn ein Treiber das IRP ausfällt, muss der Treiber dennoch PoStartNextPowerIrp aufrufen, um dem Power Manager zu signalisieren, dass er bereit ist, eine andere Energie-IRP zu verarbeiten.

Der Treiber muss PoStartNextPowerIrp aufrufen, während der aktuelle IRP-Stapelspeicherort auf den aktuellen Treiber verweist. Daher muss diese Routine vor IoCompleteRequest, IoSkipCurrentIrpStackLocation und PoCallDriver aufgerufen werden. Im Allgemeinen sollte ein Treiber PoStartNextPowerIrp aus seiner IoCompletion-Routine aufrufen, die dem IRP zugeordnet ist, oder aus der Rückrufroutine, die er an PoRequestPowerIrp übergeben hat.

Bustreiber müssen PoStartNextPowerIrp aufrufen, bevor die einzelnen IRP abgeschlossen werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000.
Zielplattform Universell
Header ntifs.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=DISPATCH_LEVEL

Weitere Informationen

IRP

IRP_MJ_POWER

IRP_MN_QUERY_POWER

IRP_MN_SET_POWER

IoCompleteRequest

IoSkipCurrentIrpStackLocation

PoCallDriver

PoRequestPowerIrp