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.

Consulte también

IRP_MN_START_DEVICE

PoStartNextPowerIrp