Freigeben über


PoSetPowerState-Funktion (ntifs.h)

Die PoSetPowerState- Routine benachrichtigt das System einer Änderung des Gerätestromzustands 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 den vorherigen Energiezustand zurück.

Bemerkungen

PoSetPowerState benachrichtigt den Power Manager des neuen Energiezustands 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. Zum Beispiel:

  • Ein Treiber ruft diese Routine nach Erhalt einer Geräte-Set-Power-Anforderung und vor dem Aufruf PoStartNextPowerIrpauf. Bei der Behandlung einer PnP-IRP_MN_START_DEVICE-Anforderung sollte der Treiber PoSetPowerState- aufrufen, um den Energiemanager darüber zu informieren, dass sich das Gerät im D0-Zustand befindet.

  • Wenn das Gerät herunterschaltet, muss der Treiber PoSetPowerState- aufrufen, bevor er den D0-Zustand verlässt. Darüber hinaus muss der Treiber Clientanforderungen verarbeiten können, bevor PoSetPowerState zurückgegeben wird.

  • Wenn das Gerät einschaltet, muss der Treiber PoSetPowerState aufrufen, nachdem das Gerät erfolgreich in den D0-Zustand versetzt wurde.

Weitere Informationen zum Einschalten eines Geräts nach oben und unten finden Sie unter Behandeln von IRP_MN_SET_POWER für Geräte-Power States.

Aufrufer von PoSetPowerState- müssen bei IRQL <= APC_LEVEL ausgeführt werden, mit Ausnahme des Einstellungszustands auf D0. Beim Festlegen des Zustands auf D0 können Anrufer unter IRQL-<= DISPATCH_LEVEL ausgeführt werden.

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- Siehe Abschnitt "Hinweise".

Siehe auch

IRP_MN_START_DEVICE

PoStartNextPowerIrp