Quando você executa um desligamento, o Windows inicia uma seqüência de desligamento. Ele envia uma mensagem END para todos os processos em execução. Cada processo então inicia sua própria seqüência END. O Windows aguarda por uma resposta de cada processo que diz que o processo foi finalizado com êxito ou se requer mais tempo. Se o processo exigir mais tempo, ele envia uma mensagem DELAY para o Windows. Neste ponto, o Windows redefine o cronômetro de desligamento e aguarda cada processo para FIM. Se os processos não tiverem terminado no tempo de desligamento padrão alocado, o Windows exibirá uma caixa de diálogo informando que alguns programas ainda estão em execução e perguntará o que fazer. É responsabilidade do programador do aplicativo, e não do Windows, certificar-se de que o aplicativo / programa / processo ENDS rapidamente e de forma limpa. Não é tarefa da Window garantir que o desligamento esteja limpo. O Windows lidará com seus próprios processos, mas não com os criados por outros.