| Предыдущий | Следующий |
| STATUS_SECTION_NOT_IMAGE | STATUS_THREAD_IS_TERMINATING |
STATUS_SUSPEND_COUNT_EXCEEDED
Счётчик приостановки потока уже достиг максимума
Приостановки потока подсчитываются: каждая успешная приостановка увеличивает счётчик, а ResumeThread уменьшает его. Поток выполняется только при нулевом счётчике. Этот статус означает, что ещё одна приостановка переполнила бы поддерживаемый счётчик, а не добавила бы следующий вложенный уровень.
Цель диагностики — несогласованные приостановки, а не загрузка процессора. Записывайте предыдущие значения счётчика, возвращённые операциями приостановки и возобновления, и определите все подсистемы, способные приостанавливать один поток. Отладчики, сбор дампов, сторожевые таймеры и прикладной код иначе могут накладывать независимые приостановки. Многократный вызов ResumeThread без учёта владения также опасен, поскольку может снять приостановку другого компонента.
Что следует проверить
- Записывайте предыдущие значения счётчика, возвращённые SuspendThread и ResumeThread.
- Определите все компоненты, которым разрешено приостанавливать целевой поток.
- Сопоставляйте каждую принадлежащую компоненту приостановку с одним возобновлением, а не принудительно обнуляйте счётчик.
Ссылки
- Microsoft: SuspendThread
- Microsoft: ResumeThread
- Microsoft: приостановка выполнения потока
- Открытые спецификации Microsoft: значения NTSTATUS
Нужно найти другой код? Найти другой код состояния или ошибки.