Что означает код NTSTATUS 0xC000013A (STATUS_CONTROL_C_EXIT)?

 
Предыдущий Следующий
STATUS_ENTRYPOINT_NOT_FOUND STATUS_LOCAL_DISCONNECT

STATUS_CONTROL_C_EXIT

description[Процесс завершился, поскольку консольное управляющее событие CTRL+C не было обработано как условие продолжения работы.]

После CTRL+C консольный путь управления завершил приложение

Консольные приложения могут устанавливать обработчики управляющих событий с помощью SetConsoleCtrlHandler. Когда событие CTRL+C достигает процесса и обработка приводит к завершению, Windows сообщает STATUS_CONTROL_C_EXIT как статус завершения процесса. Это отличается от нарушения доступа или явного кода ошибки приложения.

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

Что проверить

  • Запишите, кем было создано CTRL+C: пользователем консоли, диспетчером или управляющим событием группы процессов.
  • Трассируйте установленные обработчики управляющих событий и то, решил ли какой-либо из них продолжить или завершить работу.
  • Перенесите сложную очистку в согласованную логику завершения и сохраняйте эту причину выхода в мониторинге процессов.

Ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.