Что означает код BSOD 0x39 (SYSTEM_EXIT_OWNED_MUTEX)?

 
Также может означать:
КонстантаТипОС
ERROR_ADAP_HDW_ERRОшибка WindowsWindows
EBADSLTerrnoLinux
ENOTCONNerrnomacOS
EBFONTerrnoSolaris
Предыдущий Следующий
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 корректно, а редкая ветвь — нет.

Ссылки


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