Função PoSetPowerState (ntifs.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

PoSetPowerState retorna o estado de energia anterior.

Comentários

PoSetPowerState notifica o power manager do novo estado de energia para um dispositivo. Cada driver em uma pilha de dispositivos (filtro, função e drivers de 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 Windows 2000
Plataforma de Destino Universal
Cabeçalho ntifs.h (inclui 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