| Предыдущий | Следующий |
| 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.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
