Когда пользователь завершает работу, системе передается набор сообщений. Для графических программ оправляются сообщения WM_QUERYENDSESSION и WM_ENDSESSION, а консольным приложениям (работающим в символьном режиме) передаются сообщение CTRL_LOGOFF_EVENT.
Приложение, которое отвечает на сообщения, при их получении может завершить свою работу.
Необходимо настроить программу на игнорирование сообщений или указать другой метод их обработки. Дополнительная информация по этой теме приводится в документации пакета Resource Kit.