Aufrufen von PoStartNextPowerIrp über einen Filtertreiber

Ab Windows Vista ist der Aufruf von PoStartNextPowerIrp nicht erforderlich, und der Aufruf dieser Routine führt keinen Energieverwaltungsvorgang aus. In Windows Server 2003, Windows XP und Windows 2000 muss ein Filtertreiber poStartNextPowerIrp jedoch einmal für jede IRP_MN_QUERY_POWER oder IRP_MN_SET_POWER Anforderung aufrufen, die der Treiber empfängt. Wann der Aufruf erfolgt, hängt vom Typ der Anforderung ab und davon, ob der Treiber fehlschlägt oder die Anforderung erfolgreich ist, wie in der folgenden Tabelle gezeigt.

Anforderungstyp Wenn der Treiber die Anforderung erfolgreich ausgeführt hat, erfolgt der Aufruf: Wenn die Anforderung vom Treiber fehlschlägt, erfolgt der Aufruf:

IRP_MN_QUERY_POWER (Energiezustand des Geräts)

In einer IoCompletion-Routine , unmittelbar vor der Rückgabe.

In der DispatchPower-Routine , bevor IoCompleteRequest aufgerufen wird.

IRP_MN_QUERY_POWER (Systemleistungszustand)

In der DispatchPower-Routine nach dem Abrufen der Sperre und vor dem Festlegen des IRP-Stapelspeicherorts.

In der DispatchPower-Routine , bevor IoCompleteRequest aufgerufen wird.

IRP_MN_SET_POWER (Energiezustand des Geräts)

In einer IoCompletion-Routine , unmittelbar vor der Rückgabe.

Nicht zulässig.

IRP_MN_SET_POWER (Systemleistungszustand)

In der DispatchPower-Routine nach dem Abrufen der Sperre und vor dem Festlegen des IRP-Stapelspeicherorts.

Nicht zulässig.