Función PoSetPowerState (wdm.h)
La rutina PoSetPowerState notifica al sistema un cambio en el estado de alimentación del dispositivo para un dispositivo.
Sintaxis
POWER_STATE PoSetPowerState(
[in] PDEVICE_OBJECT DeviceObject,
[in] POWER_STATE_TYPE Type,
[in] POWER_STATE State
);
Parámetros
[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 .
Valor devuelto
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.
Comentarios
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.
Requisitos
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. |