Función PoSetPowerState (wdm.h)
La rutina PoSetPowerState notifica al sistema un cambio en el estado de alimentación del dispositivo para un dispositivo.
POWER_STATE PoSetPowerState(
[in] PDEVICE_OBJECT DeviceObject,
[in] POWER_STATE_TYPE Type,
[in] POWER_STATE State
);
[in] DeviceObject
Puntero al DEVICE_OBJECT de destino.
[in] Type
Indica un valor de POWER_STATE_TYPE . Los controladores deben especificar DevicePowerState.
[in] State
Especifica el estado de energía que se va a establecer. Los controladores deben especificar un valor de DEVICE_POWER_STATE .
En Windows 2000 y versiones posteriores del sistema operativo, PoSetPowerState devuelve el estado de energía anterior. En Windows 98/Me, PoSetPowerState devuelve el estado pasado en Estado.
PoSetPowerState notifica al administrador de energía del nuevo estado de energía para un dispositivo. Cada controlador de una pila de dispositivos (filtros, funciones y controladores de autobús) debe llamar a PoSetPowerState para informar al administrador de energía de un cambio en el estado de alimentación de su objeto de dispositivo correspondiente. Por ejemplo:
- Un controlador llama a esta rutina después de recibir una solicitud de energía de conjunto de dispositivos y antes de llamar a PoStartNextPowerIrp. Al controlar una solicitud de IRP_MN_START_DEVICE PnP, el controlador debe llamar a PoSetPowerState para notificar al administrador de energía que el dispositivo está en estado D0.
- Si el dispositivo se apaga, el controlador debe llamar a PoSetPowerState antes de salir del estado D0. Además, el controlador debe poder procesar las solicitudes de cliente antes de que PoSetPowerState devuelva.
- Si el dispositivo está encendido, el controlador debe llamar a PoSetPowerState después de que el dispositivo se coloque correctamente en el estado D0.
Los autores de llamadas de PoSetPowerState deben ejecutarse en IRQL <= APC_LEVEL excepto al establecer el estado en D0. Al establecer el estado en D0, los autores de llamadas se pueden ejecutar en IRQL <= DISPATCH_LEVEL.
Requisito | Value |
---|---|
Cliente mínimo compatible | Disponible a partir de Windows 2000. |
Plataforma de destino | Universal |
Encabezado | wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | vea la sección Comentarios. |