PoSetPowerState-Funktion (wdm.h)

Die PoSetPowerState-Routine benachrichtigt das System über eine Änderung des Geräteleistungszustands für ein Gerät.

Syntax

POWER_STATE PoSetPowerState(
  [in] PDEVICE_OBJECT   DeviceObject,
  [in] POWER_STATE_TYPE Type,
  [in] POWER_STATE      State
);

Parameter

[in] DeviceObject

Ein Zeiger auf das Ziel DEVICE_OBJECT.

[in] Type

Gibt einen POWER_STATE_TYPE Wert an. Treiber müssen DevicePowerState angeben.

[in] State

Gibt den festzulegenden Energiezustand an. Treiber müssen einen DEVICE_POWER_STATE Wert angeben.

Rückgabewert

Unter Windows 2000 und höheren Versionen des Betriebssystems gibt PoSetPowerState den vorherigen Energiezustand zurück. Unter Windows 98/Me gibt PoSetPowerState den in Zustand übergebenen Zustand zurück.

Hinweise

PoSetPowerState benachrichtigt den Power-Manager über den neuen Energiezustand für ein Gerät. Jeder Treiber in einem Gerätestapel (Filter-, Funktions- und Bustreiber) muss PoSetPowerState aufrufen, um den Energiemanager über eine Änderung des Energiezustands des entsprechenden Geräteobjekts zu informieren. Beispiel:

  • Ein Treiber ruft diese Routine nach dem Empfang einer Gerätesatz-Energieanforderung und vor dem Aufruf von PoStartNextPowerIrp auf. Beim Verarbeiten einer PnP-IRP_MN_START_DEVICE-Anforderung sollte der Treiber PoSetPowerState aufrufen, um den Energie-Manager darüber zu informieren, dass sich das Gerät im D0-Zustand befindet.
  • Wenn das Gerät heruntergefahren wird, muss der Treiber PoSetPowerState aufrufen, bevor er den D0-Zustand verlässt. Darüber hinaus muss der Treiber in der Lage sein, Clientanforderungen zu verarbeiten, bevor PoSetPowerState zurückgibt.
  • Wenn das Gerät aktiviert wird, muss der Treiber PoSetPowerState aufrufen, nachdem das Gerät erfolgreich in den D0-Zustand versetzt wurde.
Weitere Informationen zum Hoch- und Herunterschalten eines Geräts finden Sie unter Behandeln von IRP_MN_SET_POWER für Gerätestromzustände.

Aufrufer von PoSetPowerState müssen unter IRQL <= APC_LEVEL ausgeführt werden, außer wenn der Zustand auf D0 festgelegt wird. Wenn Sie den Status auf D0 festlegen, können Aufrufer unter IRQL <= DISPATCH_LEVEL ausgeführt werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows 2000.
Zielplattform Universell
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Weitere Informationen finden Sie im Abschnitt mit den Hinweisen.

Weitere Informationen

IRP_MN_START_DEVICE

PoStartNextPowerIrp