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 de Espera Moderna (S0 Baixa Potência Ociosa), consulte transição entre estados ociosos e ativos.
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 ativação . Use um objeto de temporizador aguardado 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 para verdadeiro.
Quando o sistema é ativado automaticamente por causa de um evento (diferente do comutador de energia ou 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 a função SetThreadExecutionState para indicar que eles estão ocupados. Dessa vez, o sistema pode retornar 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 de usuário está 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 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 ao 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.
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 display não é ativado automaticamente.
Se o sistema for ativado devido à atividade do usuário, o sistema primeiro transmitirá 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