Что означает код ошибки Windows 555 (ERROR_CANT_TERMINATE_SELF)?

 
Предыдущий Следующий
ERROR_CANT_WAIT ERROR_UNEXPECTED_MM_CREATE_ERR

ERROR_CANT_TERMINATE_SELF

Что означает ERROR_CANT_TERMINATE_SELF

ERROR_CANT_TERMINATE_SELF — поток попытался завершить сам себя вызовом NtTerminateThread с NULL, являясь последним потоком текущего процесса.

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

Проверьте, какой поток вызывает NtTerminateThread и какой handle передаётся в вызов.

  • Убедитесь, что код не пытается завершить текущий поток через NULL handle в ситуации, когда он является последним потоком процесса.
  • Для штатного завершения процесса используйте согласованный путь выхода процесса/потоков, а не самоуничтожение последнего потока через этот вызов.

Исходная формулировка

  • A thread attempted a termination pattern Windows does not allow.
  • shutdown logic confuses cooperative cancellation with forced termination
  • Use cooperative cancellation: signal the worker, let it release resources, and return normally. Forced termination should be reserved for exceptional containment because it can leave locks, heap state, and application invariants damaged.
  • a debugger or compatibility layer issues termination in the wrong context
  • This is not the same as access denied. Even a sufficiently privileged caller may be forbidden from using a particular self-termination route.

Технические ссылки


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