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