Средство проверки драйверов
Средство проверки драйверов отслеживает драйверы в режиме ядра Windows и графические драйверы для обнаружения незаконных вызовов функций или действий, которые могут повредить систему. Средство проверки драйверов может подвергать драйверам Windows различные стрессы и тесты, чтобы найти неправильное поведение. Вы можете настроить тесты для выполнения, что позволяет поместить водителя через тяжелые нагрузки стресса или с помощью более упрощенного тестирования. Вы также можете запускать средство проверки драйверов одновременно с несколькими драйверами или на одном драйвере одновременно.
Внимание
- Запуск средства проверки драйверов может привести к сбою компьютера.
- Для тестирования и отладки следует запускать только средство проверки драйверов на компьютерах, которые используются для тестирования и отладки.
- Чтобы использовать средство проверки драйверов, необходимо находиться в группе Администратор istrators на компьютере.
Где можно скачать средство проверки драйверов?
Вам не нужно скачать средство проверки драйверов, так как оно входит в большинство версий Windows в %WinDir%\system32\ как Verifier.exe. (Средство проверки драйверов не входит в состав Windows 10 S, поэтому мы рекомендуем протестировать поведение драйвера в Windows 10. Средство проверки драйверов не распространяется отдельно в виде пакета скачивания.
Сведения об изменениях в средстве проверки драйверов для Windows 10 и предыдущих версиях Windows см. в статье "Проверка драйверов: новые возможности".
Когда следует использовать средство проверки драйверов
Запустите средство проверки драйверов во время разработки и тестирования драйвера. В частности, используйте средство проверки драйверов для следующих целей:
Чтобы найти проблемы в начале цикла разработки, когда они проще и менее дорогостоящи для исправления.
Для устранения неполадок и отладки тестового сбоя и сбоя компьютера.
Чтобы отслеживать поведение при развертывании драйвера для тестирования с помощью WDK, Visual Studio и тестов из комплекта оборудования Windows (Windows HLK) или комплекта сертификации оборудования Windows (для Windows 8.1). Дополнительные сведения о драйверах тестирования см. в разделе "Тестирование драйвера".
Внимание
Программа совместимости оборудования Windows требует проверки CodeQL для статических проверок логотипа средства (STL) на наших клиентских и серверных операционных системах. Мы будем продолжать поддерживать поддержку SDV и ЦС на старых продуктах. Партнерам настоятельно рекомендуется ознакомиться с требованиями CodeQL к статическому тесту логотипа средства. Дополнительные сведения об использовании CodeQL см. в разделе CodeQL и проверка логотипа статических инструментов.
Запуск средства проверки драйверов
На тестовых компьютерах или на компьютерах, тестируемых и отладочных компьютерах, следует запускать только средство проверки драйверов. Чтобы получить наибольшее преимущество от средства проверки драйверов, следует использовать отладчик ядра и подключиться к тестовом компьютеру. Дополнительные сведения об инструментах отладки см. в разделе "Средства отладки" для Windows (WinDbg, KD, CDB, NTSD).
Запустите окно командной строки, выбрав "Запуск от имени администратора" и введите средство проверки, чтобы открыть диспетчер проверки драйверов.
Выберите " Создать стандартные параметры" (задача по умолчанию) и нажмите кнопку "Далее".
Вы также можете выбрать настраиваемые параметры для выбора из предопределенных параметров или выбрать отдельные параметры. Дополнительные сведения см. в разделе "Параметры средства проверки драйверов" и " Классы правил" и "Выбор параметров средства проверки драйверов".
В разделе "Выбор драйверов для проверки" выберите одну из схем выбора, описанных в следующей таблице.
Вариант Рекомендуемое использование Автоматическое выбор неподписанных драйверов Полезно для тестирования на компьютерах с версиями Windows, для которых не требуются подписанные драйверы.
Автоматическое выбор драйверов, созданных для более старых версий Windows Полезно для тестирования совместимости драйверов с более новыми версиями Windows.
Автоматическое выбор всех драйверов, установленных на этом компьютере Обеспечивает максимальное покрытие с точки зрения количества тестируемых драйверов в системе. Этот параметр полезен для тестовых сценариев, когда драйвер может взаимодействовать с другими устройствами или драйверами в системе.
Этот параметр также может исчерпать ресурсы, доступные для специального пула , и для отслеживания некоторых ресурсов. Тестирование всех драйверов также может негативно повлиять на производительность системы.
Выбор имен драйверов из списка В большинстве случаев необходимо указать, какие драйверы необходимо протестировать.
Выбор всех драйверов в стеке устройств позволяет расширенной проверке ввода-вывода отслеживать объекты и проверка соответствие требованиям, так как пакет запроса ввода-вывода (IRP) передается между каждым из драйверов в стеке, что позволяет предоставить более широкий уровень детализации при обнаружении ошибки.
Выберите один драйвер, если вы выполняете тестовый сценарий, который измеряет метрики производительности системы или драйвера или вы хотите выделить наибольшее количество ресурсов, доступных для обнаружения проблем с повреждением памяти или отслеживанием ресурсов (например, взаимоблокировок или мьютексов). Специальные параметры проверки ввода-вывода и пула более эффективны при использовании на одном драйвере одновременно.
Если вы выбрали выбор имен драйверов из списка, нажмите кнопку "Далее", а затем выберите один или несколько конкретных драйверов.
Нажмите кнопку "Готово", а затем перезагрузите компьютер.
Примечание.
При использовании средства проверки драйверов с Windows версии 20150–25126, если вы выбрали ntoskrnl , может появиться недопустимая ошибка состояния.
Чтобы избежать этой проблемы, следует отменить выбор ntoskrnl или обновить до версии Windows после сборки 25126.
Запуск средства проверки драйвера в командной строке
Вы также можете запустить средство проверки драйверов в окне командной строки без запуска диспетчера проверки драйверов. Например, чтобы запустить средство проверки драйверов со стандартными параметрами драйвера с именем myDriver.sys, используйте следующую команду:
verifier /standard /driver myDriver.sys
Дополнительные сведения о параметрах командной строки см. в разделе "Синтаксис команды проверяющего драйвера".
Управление проверятелем драйверов
Диспетчер проверки драйверов или командная строка можно использовать для управления проверятелем драйверов. Чтобы запустить диспетчер проверки драйверов, см. статью "Запуск средства проверки драйверов" ранее в этом разделе.
Для каждого из следующих действий можно использовать диспетчер проверки драйверов или ввести командную строку.
Остановка или сброс средства проверки драйвера
В диспетчере проверки драйверов выберите "Удалить существующие параметры" и нажмите кнопку "Готово".
or
В командной строке введите следующую команду.
verifier /reset
Перезагрузите компьютер.
Просмотр статистики средства проверки драйверов
В диспетчере проверки драйверов выберите "Отобразить сведения о проверенных драйверах" и нажмите кнопку "Далее". Продолжая нажать кнопку "Далее ", отображаются дополнительные сведения.
or
В командной строке введите следующую команду.
verifier /query
Просмотр параметров средства проверки драйверов
В диспетчере проверки драйверов выберите "Отобразить существующие параметры" и нажмите кнопку "Далее".
or
В командной строке введите следующую команду.
verifier /querysettings
Отладка нарушений средства проверки драйверов
Чтобы получить наибольшее преимущество от средства проверки драйверов, следует использовать отладчик ядра и подключить его к тестовом компьютеру. Общие сведения о средствах отладки для Windows см. в разделе "Средства отладки" для Windows (WinDbg, KD, CDB, NTSD).
Если средство проверки драйверов обнаруживает нарушение, он создает ошибку проверка, чтобы остановить компьютер. Это позволяет получить наиболее подробную информацию для отладки проблемы. Если у вас есть отладчик ядра, подключенный к тестовом компьютеру, на котором запущен средство проверки драйверов, и средство проверки драйверов обнаруживает нарушение, Windows прерывается в отладчик и отображает краткое описание ошибки.
Все нарушения, обнаруженные проверятелем драйверов, приводят к ошибке проверка. Обычно это проверка ошибок 0xC4. Дополнительные сведения см. в разделе "Проверка ошибок отладки" 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION и проверка ошибок 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION.
Другие распространенные коды ошибок проверка включают следующие:
- Проверка ошибок 0xC1: SPECIAL_POOL_DETECTED_MEMORY_CORRUPTION
- Проверка ошибок 0xC6: DRIVER_CAUGHT_MODIFYING_FREED_POOL
- Проверка ошибок 0xC9: DRIVER_VERIFIER_IOMANAGER_VIOLATION
- Проверка ошибок 0xD6: DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION
- Проверка ошибок 0xE6: DRIVER_VERIFIER_DMA_VIOLATION
Дополнительные сведения см. в разделе "Обработка проверки ошибок при включении средства проверки драйвера".
При запуске нового сеанса отладки используйте команду расширения отладчика , !analyze. В режиме ядра команда !analyze отображает сведения о последней ошибке проверка. Чтобы отобразить дополнительные сведения, чтобы определить драйвер сбоя, добавьте параметр -v в команду в командной строке kd> :
kd> !analyze -v
Помимо !analyze, вы можете ввести следующие расширения отладчика в запросе kd>, чтобы просмотреть сведения, относящиеся к средство проверки драйверов:
!verifier дампы захватили статистику средства проверки драйверов. Используйте !verifier -? для отображения всех доступных параметров.
kd> !verifier
!взаимоблокировка отображает сведения, связанные с блокировками или объектами, отслеживаемыми функцией обнаружения взаимоблокировки средства проверки драйверов. Используйте взаимоблокировку !? для отображения всех доступных параметров.
kd> !deadlock
!iovirp [адрес] отображает информацию, связанную с IRP, отслеживаемой проверяющей операцией ввода-вывода. Например:
kd> !iovirp 947cef68
Просмотрите правило соответствия DDI проверка, которое было нарушено. (RuleID всегда является первым аргументом ошибки проверка.) Все идентификаторы правил из проверка соответствия DDI находятся в форме 0x200nn.
См. также
Параметры средства проверки драйверов
Синтаксис команды проверяющего драйвера
Использование средства проверки драйверов