| Предыдущий | Следующий |
| STATUS_CANT_ACCESS_DOMAIN_INFO | STATUS_INVALID_SERVER_STATE |
STATUS_CANT_TERMINATE_SELF
Последний поток не может использовать этот неявный путь самозавершения
Документированное состояние NTSTATUS имеет узкое нативное значение: поток вызвал NtTerminateThread с неявной целью текущего потока, будучи последним потоком процесса. Завершение этого потока одновременно завершило бы процесс, и данная форма нативного вызова отклоняет такой случай.
Сохраните сведения о том, передал ли вызывающий код настоящий дескриптор потока или использовал неявную ссылку на себя. Если требуется завершить процесс, используйте обычный путь выхода процесса, чтобы явно применить семантику очистки всего процесса. Если должен завершиться только рабочий поток, архитектура не должна позволять ему неожиданно стать последним потоком процесса.
Что проверить
- Запишите форму цели NtTerminateThread и текущее число потоков процесса.
- Когда требуется завершить процесс, используйте завершение процесса или обычный путь ExitProcess.
- Проверьте порядок остановки, если рабочий поток неожиданно становится последним оставшимся потоком.
Ссылки
- Microsoft: TerminateThread
- Microsoft: TerminateProcess
- System Informer PHNT: нативный API процессов и потоков
- Открытые спецификации Microsoft: значения NTSTATUS
Нужно найти другой код? Найти другой код состояния или ошибки.