Какова последовательность событий при завершении работы Windows?

Какова последовательность событий при завершении работы Windows?

Когда пользователь завершает работу обычным способом через меню «Пуск» на компьютере, присоединенном к домену, что происходит в первую очередь: а) попытка закрыть приложения, работающие в фоновом режиме, или б) отключение от сервера?

Причина, по которой я спрашиваю, заключается в том, что мы запускаем небольшое портативное приложение на общем сервере, когда пользователь входит в систему.

При завершении работы обычным поведением всех пользователей, за исключением небольшого числа, является то, что приложение автоматически завершает работу (оно перехватывает сигнал завершения работы Windows и завершает работу), а выключение ПК продолжается в обычном режиме.

Для меня очевидно, что в некоторых случаях сетевое соединение прерывается, и Windows выдает сообщение с кодом 0xc00000c4, STATUS_UNEXPECTED_NETWORK_ERROR, поскольку приложение не может завершить работу, поскольку оно «не существует», как оно его видит.

Итак, существует ли установленная последовательность событий или, эм, кто знает, что, когда и в каком порядке?

решение1

Во время выключения Windows просто отправляет сообщение о закрытии всему, что запущено. Процессы и службы, которые не завершаются в течение заданного времени ожидания, могут быть либо принудительно завершены, либо пользователю может быть предложено принять решение.

Поскольку выключение происходит параллельно, упорядоченной последовательности событий нет. Порядок зависит от времени, необходимого для завершения каждого процесса, и может дополнительно зависеть от производительности оборудования.

Чтобы гарантировать завершение работы вашей программы до того, как это произойдет, вы можете создать скрипт завершения работы, который закроет ее в упорядоченном порядке. Используйте редактор групповой политики ( gpedit.msc) и перейдите к Конфигурация компьютера > Параметры Windows > Сценарии (запуск/завершение работы).

Связанный контент