| Предыдущий | Следующий |
| 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-кода.
Нужно найти другой код? Найти другой код состояния или ошибки.