| Предыдущий | Следующий |
| SERIAL_DRIVER_INTERNAL | SYSTEM_UNWIND_PREVIOUS_USER |
SYSTEM_EXIT_OWNED_MUTEX
Код остановки SYSTEM_EXIT_OWNED_MUTEX имеет значение 0x00000039. Он означает, что рабочая процедура завершилась, не освободив принадлежащий ей объект-мьютекс.
Параметры SYSTEM_EXIT_OWNED_MUTEX
| Параметр | Описание |
|---|---|
1 |
Адрес рабочей процедуры, вызвавшей ошибку. |
2 |
Параметр, переданный рабочей процедуре. |
3 |
Адрес рабочего элемента. |
4 |
Зарезервировано. |
Причина
Рабочая процедура вернулась, продолжая владеть объектом-мьютексом. Текущий рабочий поток продолжит выполнять другие несвязанные рабочие элементы, а мьютекс никогда не будет освобождён.
Решение
Для анализа требуется отладчик. Чтобы определить драйвер, вызвавший ошибку, используйте команду отладчика ln (List Nearest Symbols):
kd> ln address
где address — адрес рабочей процедуры из параметра 1.
Что проверить
Поток попытался завершиться, всё ещё владея mutex. В дампе определите mutex и владельца, затем найдите путь, на котором захват не был сбалансирован release. Особенно проверяйте error/exception paths: нормальный путь может освобождать mutex корректно, а редкая ветвь — нет.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.