Función PoSetPowerState (ntifs.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
PoSetPowerState devuelve el estado de energía anterior.
Comentarios
PoSetPowerState notifica al administrador de energía el nuevo estado de energía de un dispositivo. Cada controlador de una pila de dispositivos (filtros, funciones y controladores de bus) 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 establecida en el dispositivo 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.
Para obtener más información sobre cómo encender y bajar un dispositivo, consulte Control de IRP_MN_SET_POWER para estados de energía del dispositivo.
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 | Windows 2000 |
Plataforma de destino | Universal |
Encabezado | ntifs.h (incluye Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | vea la sección Comentarios. |