Partilhar via


Eventos de despertar do sistema

As informações a seguir se aplicam a despertares de suspensão (S3) e hibernação (S4). Para despertar a partir do Modo de Espera Moderno (S0 Low Power Idle), consulte transição entre os estados ocioso e ativo.

Seu aplicativo pode restaurar um computador que está em estado de suspensão para o estado de trabalho usando um temporizador agendado ou um evento de dispositivo. Isso é conhecido como um evento de despertar . Use um objeto de temporizador de de espera para especificar a hora em que o sistema deve ser ativado. Para criar o objeto, use a funçãoCreateWaitableTimer. Para definir o temporizador, use a funçãoSetWaitableTimer. O parâmetro pDueTime especifica quando o temporizador será sinalizado. Para especificar que o sistema deve ser ativado quando o temporizador for sinalizado, defina o parâmetro fResume como TRUE.

Quando o sistema é ativado automaticamente devido a um evento (diferente do interruptor de energia ou da atividade do usuário), o sistema define automaticamente um temporizador ocioso autônomo para pelo menos 2 minutos. Esse temporizador dá aos aplicativos tempo suficiente para chamar o função SetThreadExecutionState para indicar que eles estão ocupados. Esse tempo permite que o sistema retorne ao estado de suspensão rapidamente depois que o computador não for mais necessário. Os critérios a seguir determinam se o sistema retorna ao estado de suspensão:

  • Se o sistema for ativado automaticamente (ou seja, nenhuma atividade do usuário estiver presente), ele será desligado assim que o temporizador ocioso autônomo expirar, supondo que nenhum aplicativo tenha chamado SetThreadExecutionState para indicar que o sistema é necessário.
  • As ativações baseadas em dispositivo acionam o temporizador ocioso autônomo por padrão, a menos que o driver de dispositivo indique a presença do usuário. Se o driver indicar a presença do usuário, o temporizador ocioso do sistema será usado.
  • Se o sistema for ativado automaticamente, mas o usuário fornecer uma nova entrada enquanto o evento é manipulado, o sistema não retornará automaticamente ao modo de suspensão com base no temporizador ocioso autônomo. Em vez disso, o sistema retorna ao modo de suspensão com base no temporizador ocioso do sistema.
  • Se o sistema for ativado devido à atividade do usuário, o sistema não retornará automaticamente ao modo de suspensão com base no temporizador ocioso autônomo. Em vez disso, o sistema retorna ao modo de suspensão com base no temporizador ocioso do sistema.

Quando o sistema é ativado automaticamente, ele transmite o evento PBT_APMRESUMEAUTOMATIC para todos os aplicativos. Como o usuário não está presente, a maioria dos aplicativos não deve fazer nada. Aplicativos de manipulação de eventos, como servidores de fax, devem manipular seus eventos. Para determinar se o sistema está nesse estado, chame a funçãoIsSystemResumeAutomatic. Quando o sistema é ativado automaticamente, o ecrã não é ligado automaticamente.

Se o sistema for ativado devido à atividade do usuário, o sistema transmitirá primeiro o evento PBT_APMRESUMEAUTOMATIC, seguido por um evento PBT_APMRESUMESUSPEND. Além disso, o sistema ligará o visor. Seu aplicativo deve reabrir os arquivos que fechou quando o sistema entrou em suspensão e se preparar para a entrada do usuário.

Sobre o gerenciamento de energia

Critérios de suspensão do sistema