Partilhar via


Função PoSetPowerState (ntifs.h)

A rotina PoSetPowerState notifica o sistema de uma alteração no de 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_OBJECTde 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.

Valor de retorno

poSetPowerState retorna o estado de energia anterior.

Observações

PoSetPowerState notifica o power manager do novo estado de energia de 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 sendo desligado, 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 de poSetPowerState retorna.

  • Se o dispositivo estiver sendo habilitado, o driver deverá chamar PoSetPowerState depois que o dispositivo for colocado com êxito no estado D0.

Para obter mais informações sobre como ativar um dispositivo para cima e para baixo, consulte Handling IRP_MN_SET_POWER for Device Power States.

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

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 2000
da Plataforma de Destino Universal
cabeçalho ntifs.h (incluem Wdm.h, Ntddk.h, Ntifs.h)
biblioteca NtosKrnl.lib
de DLL NtosKrnl.exe
IRQL Consulte a seção Comentários.

Consulte também

IRP_MN_START_DEVICE

PoStartNextPowerIrp