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. |