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. |