Что означает код NTSTATUS 0xC0000191 (STATUS_MUTANT_LIMIT_EXCEEDED)?

 
Предыдущий Следующий
STATUS_TRUST_FAILURE STATUS_NETLOGON_NOT_STARTED

STATUS_MUTANT_LIMIT_EXCEEDED

Счётчик рекурсии mutant достиг ограничения реализации

Поток, уже владеющий mutex или mutant, может рекурсивно захватить тот же объект; каждому успешному захвату должно соответствовать освобождение. STATUS_MUTANT_LIMIT_EXCEEDED означает, что учёт рекурсивного владения достиг максимума вместо блокировки на другом владельце.

Обычно такой результат указывает на неконтролируемую рекурсию, цикл повторов с повторным захватом без раскрутки или отсутствующее освобождение во внутреннем пути. Сохраните поток-владелец и стеки последовательных захватов. Увеличение лимита цикла или замена на семафор не исправят инвариант вложенности. Полезная диагностическая точка — первый захват без соответствующего освобождения.

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

  • Записывайте глубину захвата и поток-владелец mutant.
  • Найдите рекурсивные пути или повторы, повторно захватывающие объект до освобождения.
  • Сравните обычные и исключительные выходы на предмет сбалансированных освобождений.

Ссылки


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