Função PoSetPowerState (wdm.h)

A rotina PoSetPowerState notifica o sistema de uma alteração no estado de energia do dispositivo para um dispositivo.

Sintaxe

POWER_STATE PoSetPowerState(
  [in] PDEVICE_OBJECT   DeviceObject,
  [in] POWER_STATE_TYPE Type,
  [in] POWER_STATE      State
);

Parâmetros

[in] DeviceObject

Um ponteiro para o DEVICE_OBJECT de destino.

[in] Type

Indica um valor POWER_STATE_TYPE . Os drivers devem especificar DevicePowerState.

[in] State

Especifica o estado de energia a ser definido. Os drivers devem especificar um valor DEVICE_POWER_STATE .

Retornar valor

No Windows 2000 e versões posteriores do sistema operacional, PoSetPowerState retorna o estado de energia anterior. No Windows 98/Me, PoSetPowerState retorna o estado passado em Estado.

Comentários

PoSetPowerState notifica o power manager do novo estado de energia para um dispositivo. Cada driver em uma pilha de dispositivos (drivers de filtro, função e barramento) deve chamar PoSetPowerState para informar o power manager de uma alteração no estado de energia de seu objeto de dispositivo correspondente. Por exemplo:

  • Um driver chama essa rotina depois de receber uma solicitação de set-power do dispositivo e antes de chamar PoStartNextPowerIrp. Ao lidar com uma solicitação de IRP_MN_START_DEVICE PnP, o driver deve chamar PoSetPowerState para notificar o power manager de que o dispositivo está no estado D0 .
  • Se o dispositivo estiver desligando, o driver deverá chamar PoSetPowerState antes de sair do estado D0. Além disso, o driver deve ser capaz de processar solicitações de cliente antes que PoSetPowerState retorne.
  • Se o dispositivo estiver sendo ligado, o driver deverá chamar PoSetPowerState depois que o dispositivo for colocado com êxito no estado D0 .
Para obter mais informações sobre como ligar e desligar um dispositivo, consulte Manipulando IRP_MN_SET_POWER para estados de energia do dispositivo.

Os chamadores de PoSetPowerState devem estar em execução em IRQL <= APC_LEVEL exceto ao definir o estado como D0. Ao definir o estado como D0, os chamadores podem estar em execução em IRQL <= DISPATCH_LEVEL.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível a partir do Windows 2000.
Plataforma de Destino Universal
Cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Consulte a seção Observações.

Confira também

IRP_MN_START_DEVICE

PoStartNextPowerIrp