Driver Verifier в Windows: диагностика и исправление сбоев драйверов
Когда необходим Driver Verifier
Инструмент Driver Verifier (Диспетчер проверки драйверов) используется для стресс-тестирования драйверов режима ядра. Он позволяет выявить скрытые утечки памяти, повреждения пулов и обращения к несуществующим адресам. При обнаружении ошибки Verifier намеренно вызывает синий экран смерти с кодом DRIVER_VERIFIER_DETECTED_VIOLATION (0x000000C4) или PAGE_FAULT_IN_NONPAGED_AREA, чтобы предотвратить повреждение данных.
| Стоп-код BSOD | Шестнадцатеричный код | Что означает |
|---|---|---|
| DRIVER_VERIFIER_DETECTED_VIOLATION | 0x000000C4 | Драйвер нарушил правила работы с памятью ядра (параметр 1 указывает точное правило) |
| SPECIAL_POOL_DETECTED_MEMORY_CORRUPTION | 0x000000C1 | Драйвер произвел запись за пределами выделенного ему специального пула памяти |
| DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION | 0x000000D6 | Обращение к освобожденной странице виртуальной памяти ядра |
Пошаговая настройка и работа с Driver Verifier
- Создайте точку восстановления системы: стресс-тест может ввести систему в циклический BSOD при старте. Создайте бэкап перед запуском утилиты.
- Настройте профиль проверки драйверов: нажмите
Win + R, введитеverifier.exe:- Выберите «Создать нестандартные параметры (для разработчиков программного обеспечения)» > Далее.
- Отметьте флажками тесты: Специальный пул (Special Pool), Пул принудительных проверок (Force IRQL Checking), Отслеживание пула (Pool Tracking), Обнаружение взаимоблокировок (Deadlock Detection). Не включайте опцию «Рандомизированное моделирование нехватки ресурсов».
- Выберите «Выбрать имена драйверов из списка» > отсортируйте по столбцу Поставщик (Provider) > отметьте все сторонние драйверы (не принадлежащие Microsoft Corporation).
- Нажмите Готово и перезагрузите компьютер.
- Экстренное отключение Driver Verifier при циклическом синем экране (Bootloop): если система не может загрузиться штатно, загрузитесь в Безопасный режим (Safe Mode) или среду восстановления WinRE и выполните:
verifier /reset # Либо через удаление параметров в реестре reg delete "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v "VerifyDrivers" /f reg delete "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v "VerifyDriverLevel" /f - Проанализируйте полученный дамп памяти (Minidump): откройте файл
C:\Windows\Minidump\*.dmpв утилите WinDbg Preview и выполните команду!analyze -v, чтобы узнать имя сбойного.sysфайла.
Важно: Никогда не оставляйте Driver Verifier включенным на постоянной основе! Тестирование создает повышенную нагрузку на CPU и память. После выявления и удаления сбойного драйвера всегда сбрасывайте утилиту командой verifier /reset.
Частые вопросы (FAQ)
Как проверить, включен ли сейчас Driver Verifier?
Запустите командную строку от имени администратора и выполните verifier /querysettings. Если Verifier активен, отобразится список тестируемых драйверов.
Почему при включении Verifier система стала сильно тормозить?
Verifier изолирует каждую операцию выделения памяти в отдельный страничный блок (Special Pool) и намеренно изменяет тайминги потоков, что замедляет операции ввода-вывода.
Можно ли проверять драйверы от Microsoft?
Проверять системные драйверы Microsoft не рекомендуется, так как они вызывают ложные срабатывания при экстремальных проверках подсистемы DDI/IRQL.
Что делать после того, как имя сбойного .sys файла найдено?
Удалите соответствующую программу (антивирус, утилиту мониторинга, VPN-клиент) или переустановите драйвер устройства на стабильную версию.