Что означает код NTSTATUS 0xC00000DB (STATUS_CANT_TERMINATE_SELF)?

 
Предыдущий Следующий
STATUS_CANT_ACCESS_DOMAIN_INFO STATUS_INVALID_SERVER_STATE

STATUS_CANT_TERMINATE_SELF

Последний поток не может использовать этот неявный путь самозавершения

Документированное состояние NTSTATUS имеет узкое нативное значение: поток вызвал NtTerminateThread с неявной целью текущего потока, будучи последним потоком процесса. Завершение этого потока одновременно завершило бы процесс, и данная форма нативного вызова отклоняет такой случай.

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

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

  • Запишите форму цели NtTerminateThread и текущее число потоков процесса.
  • Когда требуется завершить процесс, используйте завершение процесса или обычный путь ExitProcess.
  • Проверьте порядок остановки, если рабочий поток неожиданно становится последним оставшимся потоком.

Ссылки


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