Поделиться через


0x4000008A проверки ошибок: THREAD_TERMINATE_HELD_MUTEX

Проверка ошибок THREAD_TERMINATE_HELD_MUTEX имеет значение 0x4000008A. Это означает, что драйвер приобрел мьютекс в потоке, который завершил работу до освобождения мьютекса. Это может быть вызвано тем, что драйвер возвращается в пользовательский режим без освобождения мьютекса или драйвер получает мьютекс, а затем вызывает исключение, которое приводит к завершению потока, в котором он выполняется.

Важно!

Эта статья предназначена для программистов. Если вы являетесь клиентом, который получил код ошибки "синий экран" во время работы с компьютером, см. статью Устранение ошибок синего экрана.

Параметры THREAD_TERMINATE_HELD_MUTEX

Параметр Описание
1 Адрес KTHREAD, которому принадлежит KMUTEX.
2 Адрес принадлежащей ей KMUTEX.
3 Зарезервировано
4 Зарезервировано

Причина

Расширение отладки !analyze отображает сведения об ошибке проверка и может быть полезно для определения первопричины.

Чтобы разобраться, посмотрите на мешок вызовов. Если в стеке есть драйвер, за которым непосредственно следуют процедуры обработки системных исключений, а затем подпрограммы завершения потоков, этот драйвер неисправен и должен быть исправлен, чтобы не вызывать необработанное исключение при удержании мьютекса ядра. Если в стеке отображается обычный код завершения потока и драйвер не связан, запустите !pool или используйте ln (список ближайших символов) по адресу мьютекса (параметр 2), чтобы узнать, кто владеет им. Эта ошибка почти наверняка будет находиться в коде владельца этого мьютекса.