Freigeben über


PoStartNextPowerIrp-Funktion (ntifs.h)

Die PoStartNextPowerIrp Routine signalisiert dem Power Manager, dass der Treiber bereit ist, die nächste Leistung 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 ein IRP, in dem der Hauptfunktionscode IRP_MJ_POWERist.

Rückgabewert

Nichts

Bemerkungen

Ab Windows Vista ist der Treiber nicht erforderlich, um PoStartNextPowerIrp aufzurufen, und ein Aufruf dieser Routine führt keinen Energieverwaltungsvorgang durch. 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 Strom-IRP fertig ist, falls vorhanden, und bereit ist, den nächsten Netz-IRP zu verarbeiten. Er muss einmal von jedem Treiber für jede IRP_MN_QUERY_POWER- oder IRP_MN_SET_POWER-Anforderung aufgerufen werden.

Obwohl Energie-IRPs nur einmal abgeschlossen werden, in der Regel vom Bustreiber für ein Gerät, muss jeder Treiber im Gerätestapel PoStartNextPowerIrp aufrufen, da der IRP den Stapel nach unten bewegt oder zurück. Selbst wenn ein Treiber das IRP nicht erfüllt, muss der Treiber trotzdem PoStartNextPowerIrp aufrufen, um dem Strommanager zu signalisieren, dass er bereit ist, ein anderes Strom-IRP zu verarbeiten.

Der Treiber muss PoStartNextPowerIrp- aufrufen, während die aktuelle IRP-Stapelposition auf den aktuellen Treiber verweist. Daher muss diese Routine vor IoCompleteRequest, IoSkipCurrentIrpStackLocationund PoCallDriveraufgerufen werden. In der Regel sollte ein Treiber PoStartNextPowerIrp aus seiner IoCompletion- Routine aufrufen, die dem IRP zugeordnet ist, oder von der Rückrufroutine, die an PoRequestPowerIrpübergeben wurde.

Busfahrer müssen PoStartNextPowerIrp- aufrufen, bevor sie jedes IRP abschließen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 2000.
Zielplattform- Universal
Header- ntifs.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- <=DISPATCH_LEVEL

Siehe auch

IRP-

IRP_MJ_POWER

IRP_MN_QUERY_POWER

IRP_MN_SET_POWER

IoCompleteRequest-

IoSkipCurrentIrpStackLocation

PoCallDriver-

PoRequestPowerIrp