Freigeben über


PoSetPowerState-Funktion (ntifs.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

PoSetPowerState gibt den vorherigen Energiezustand 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 Power 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) Windows 2000
Zielplattform Universell
Header ntifs.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