Eventos de ativação do sistema
As informações a seguir se aplicam a velórios de suspensão (S3) e hibernação (S4). Para velórios do Modo de Espera Moderno (S0 Baixa Potência Ociosa), consulte a transição entre estados ociosos e ativos.
Seu aplicativo pode restaurar um computador que está em um estado de suspensão para o estado de trabalho usando um temporizador agendado ou um evento de dispositivo. Isso é conhecido como um evento de ativação. Use um objeto de temporizador de espera para especificar a hora em que o sistema deve ser ativado. Para criar o objeto, use a função CreateWaitableTimer . Para definir o temporizador, use a função SetWaitableTimer . O parâmetro pDueTime especifica quando o temporizador será sinalizado. Para especificar que o sistema deve ativar quando o temporizador for sinalizado, defina o parâmetro fResume como TRUE.
Quando o sistema é ativado automaticamente devido a um evento (diferente do comutador de energia ou atividade do usuário), o sistema define automaticamente um temporizador ocioso autônomo como pelo menos 2 minutos. Esse temporizador dá aos aplicativos tempo suficiente para chamar a função SetThreadExecutionState para indicar que eles estão ocupados. Desta vez, 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 no dispositivo disparam o temporizador ocioso autônomo por padrão, a menos que o driver do 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 for tratado, o sistema não retornará automaticamente para suspensão com base no temporizador ocioso autônomo. Em vez disso, o sistema retorna para 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 para suspensão com base no temporizador ocioso autônomo. Em vez disso, o sistema retorna para dormir 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 lidar com seus eventos. Para determinar se o sistema está nesse estado, chame a função IsSystemResumeAutomatic . Quando o sistema é ativado automaticamente, o vídeo não é ativado automaticamente.
Se o sistema for ativado devido à atividade do usuário, o sistema transmitirá primeiro o evento PBT_APMRESUMEAUTOMATIC seguido de um evento PBT_APMRESUMESUSPEND . Além disso, o sistema ativará a exibição. Seu aplicativo deve reabrir os arquivos que fechou quando o sistema entrou em suspensão e se preparar para a entrada do usuário.
Tópicos relacionados