Qual é a sequência de eventos no desligamento do Windows?

Qual é a sequência de eventos no desligamento do Windows?

Quando um usuário desliga normalmente por meio do menu Iniciar em um computador associado a um domínio, o que acontece primeiro: a) tentativa de fechar aplicativos em execução em segundo plano ou b) desconectar do servidor?

A razão pela qual pergunto é que executamos um pequeno aplicativo portátil em um compartilhamento de servidor quando o usuário faz login.

No desligamento, o comportamento normal de todos, exceto um pequeno número de usuários, é que o aplicativo seja encerrado silenciosamente (ele intercepta o sinal de desligamento do Windows e termina) e o desligamento do PC continua normalmente.

Para alguns, é óbvio para mim que a conexão de rede foi encerrada e o Windows lança uma caixa de mensagem com 0xc00000c4, STATUS_UNEXPECTED_NETWORK_ERROR, porque o aplicativo não pode desligar-se porque "não existe", como o vê.

Então, há uma sequência definida de eventos, ou é, hum, quem sabe o quê e quando e em que ordem?

Responder1

Durante o desligamento, o Windows apenas envia uma mensagem de fechamento para tudo que está em execução. Os processos e serviços que não terminam dentro de um determinado tempo limite podem ser encerrados à força ou o usuário pode ser solicitado a tomar uma decisão.

Como o encerramento é feito em paralelo, não há uma sequência ordenada de eventos. A ordem depende do tempo que cada processo leva para terminar e pode ser ainda mais influenciada pelo desempenho do hardware.

Para garantir que seu programa termine antes que isso aconteça, você pode criar um script de desligamento que o fechará de maneira ordenada. Use o Editor de Política de Grupo ( gpedit.msc) e vá para Configuração do computador > Configurações do Windows > Scripts (inicialização/desligamento).

informação relacionada