Что означает код BSOD 212 (SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD)?

 
Также может означать:
КонстантаТипОС
ERROR_LOCKEDОшибка WindowsWindows
Предыдущий Следующий
DRIVER_PORTION_MUST_BE_NONPAGED DRIVER_PAGE_FAULT_IN_FREED_SPECIAL_POOL

SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD

Неправильная выгрузка драйвера на повышенном IRQL, обнаруженная для SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD

SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD имеет код проверки ошибки 0x000000D4. Эта проверка ошибки относится к результатам Driver Verifier: драйвер был выгружен без отмены незавершённых операций. Ключевая проблема связана с управлением временем жизни обратных вызовов, таймеров, DPC, рабочих элементов, IRP или объектов устройств, к которым всё ещё возможно обращение после выгрузки.

Как читать дамп SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD

  • Само имя уже указывает, что вероятным нарушением контракта является выгрузка драйвера.
  • Найдите незавершённые операции, которые продолжают существовать после DriverUnload, удаления устройства или очистки после сбоя.
  • IRQL имеет значение, поскольку некоторые проверки выполняются, когда обычная блокирующая очистка уже невозможна.

Что проверить для SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD

  • Проверьте DriverUnload, EvtDeviceReleaseHardware, пути отмены, таймеры, DPC, рабочие элементы и поставленные в очередь IRP.
  • Запустите Driver Verifier для подозреваемого драйвера в тестовой системе.
  • Проверьте обращения после выгрузки и обратные вызовы, регистрация которых не была отменена до выгрузки.

Ссылки для SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD

Данные дампа для SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD

Для SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD сохраните полный дамп, четыре параметра bug check, точную сборку Windows, список загруженных модулей и временную шкалу событий непосредственно перед остановкой. Для SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD allStat описывает состояние так: «Драйвер был выгружен без отмены незавершённых операций». Эта фраза определяет класс сбоя, а параметры и стек позволяют установить, какой объект, драйвер, процессор или экземпляр подсистемы был задействован.

Порядок анализа для SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD

  • Запустите WinDbg !analyze -v, затем разберите документированное значение каждого параметра SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD, а не полагайтесь только на строку probably-caused-by.
  • Для SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD найдите самое раннее аномальное событие: обновление драйвера, изменение прошивки, сброс устройства, ошибку хранилища, отчёт Verifier, исчерпание ресурсов или зависание приложения, связанное с system / scan / at / raised / irql.
  • Для SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD сохраните в перечне модулей сторонние фильтры, драйверы безопасности, хранилища, графики и виртуализации; удаление данных до анализа дампа может скрыть ответственный путь.

Не перезагружайте многократно систему с SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD до сохранения дампа и журналов событий. Для SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD способ восстановления должен определяться компонентом из стека и параметров, а не только символьным именем stop-кода.

Данные дампа для SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD

Для SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD сохраните полный дамп, четыре параметра bug check, точную сборку Windows, список загруженных модулей и временную шкалу событий непосредственно перед остановкой. Для SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD allStat описывает состояние так: «Драйвер был выгружен без отмены незавершённых операций». Эта фраза определяет класс сбоя, а параметры и стек позволяют установить, какой объект, драйвер, процессор или экземпляр подсистемы был задействован.

Порядок анализа для SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD

  • Запустите WinDbg !analyze -v, затем разберите документированное значение каждого параметра SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD, а не полагайтесь только на строку probably-caused-by.
  • Для SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD найдите самое раннее аномальное событие: обновление драйвера, изменение прошивки, сброс устройства, ошибку хранилища, отчёт Verifier, исчерпание ресурсов или зависание приложения, связанное с system / scan / at / raised / irql.
  • Для SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD сохраните в перечне модулей сторонние фильтры, драйверы безопасности, хранилища, графики и виртуализации; удаление данных до анализа дампа может скрыть ответственный путь.

Не перезагружайте многократно систему с SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD до сохранения дампа и журналов событий. Для SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD способ восстановления должен определяться компонентом из стека и параметров, а не только символьным именем stop-кода.


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