Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Проверка ошибок THREAD_TERMINATE_HELD_MUTEX имеет значение 0x4000008A. Это означает, что драйвер приобрел мьютекс в потоке, который завершил работу до освобождения мьютекса. Это может быть вызвано тем, что драйвер возвращается в пользовательский режим без освобождения мьютекса или драйвер получает мьютекс, а затем вызывает исключение, которое приводит к завершению потока, в котором он выполняется.
Важно!
Эта статья предназначена для программистов. Если вы являетесь клиентом, который получил код ошибки "синий экран" во время работы с компьютером, см. статью Устранение ошибок синего экрана.
Параметры THREAD_TERMINATE_HELD_MUTEX
| Параметр | Описание |
|---|---|
| 1 | Адрес KTHREAD, которому принадлежит KMUTEX. |
| 2 | Адрес принадлежащей ей KMUTEX. |
| 3 | Зарезервировано |
| 4 | Зарезервировано |
Причина
Расширение отладки !analyze отображает сведения об ошибке проверка и может быть полезно для определения первопричины.
Чтобы разобраться, посмотрите на мешок вызовов. Если в стеке есть драйвер, за которым непосредственно следуют процедуры обработки системных исключений, а затем подпрограммы завершения потоков, этот драйвер неисправен и должен быть исправлен, чтобы не вызывать необработанное исключение при удержании мьютекса ядра. Если в стеке отображается обычный код завершения потока и драйвер не связан, запустите !pool или используйте ln (список ближайших символов) по адресу мьютекса (параметр 2), чтобы узнать, кто владеет им. Эта ошибка почти наверняка будет находиться в коде владельца этого мьютекса.