Windows driver verifier manager

Driver Verifier — выявляем проблемные драйвера Windows

Утилита Driver Verifier входит в состав всех версий Windows, начиная с Windows XP, и позволяет выполнять проверку драйверов, выявлять проблемные драйвера, являющиеся причиной синего экрана смерти (BSOD — Blue Screen of Death) и записывать подробную информацию о проблемном драйвере в дамп памяти для дальнейшего анализа. Утилита подвергает проверяемые драйвера различным «стресс-тестам», имитируя различные экстремальные условия: нехватка памяти, контроль I/O, IRQL, взаимные блокировки, проверки DMA, IRP и пр. Т.е. имитируются ситуации, которые на продуктивных системах случаются нечасто, и отслеживается поведения драйвера в них. Цель работы утилиты – выявить ситуации, при которых драйвер может привести к аварийному завершению работы системы с BSOD.

Исполняемый файл утилиты Driver Verifier называется Verifier.exe и находится в каталоге %windir%\system32. Есть два варианта использования утилиты: из командой строки или с помощью графического интерфейса.

Чтобы включить режим проверки драйверов в Windows 8, запустите утилиту Driver Verifier, набрав

В списке задач выберите Create custom settings (for code developers) и нажмите Next.

Убедитесь, что выбраны опции Standard settings, Force pending I/O requests и IRP Logging. Нажмите Next.

Далее выберите Select driver names From a list.

Отсортируйте содержимое таблицы, щелкнув по заголовку столбца «Provider» и в списке драйверов выберите те, которые необходимо протестировать. В нашем примере мы запустим проверку для всех драйверов, разработчиком которых не является Microsoft Corporation. Мы выбрали драйвера: e1g6032e.sys (Intel) и lsi_sas.sys (LSI).

Осталось нажать Finish и появится информационно окно о том, что для вступления изменений в силу нужно перезагрузить систему.

Совет. Режим проверки для драйвера можно включить и из командной строки. Например, чтобы запустить Driver Verifier со стандартными настройками для драйвера myPCDriver.sys, команда будет выглядеть так:

После перезагрузки система загружается в режиме проверки драйверов. Driver Verifier работает в фоновом режиме, выполняя различные виды тестирования выбранных драйверов на предмет выявления ошибок. Используйте компьютер как обычно и дождитесь появления BSOD. Если вы знаете, какие действия приводили ранее к аварийному завершению работы системы, повторите их. В случае появления BSOD необходимо скопировать файл дампа памяти (по умолчанию сохраняются в каталоге C:\Windows\Minidump\*.dmp) и проанализировать его с помощью Windbg или аналога.

В том случае, если в течении 1-2 дней проблема не повторилась, то с определенной степенью достоверности можно сделать вывод, что проверяемые драйвера не являются причиной падения системы и режим проверки для них можно отключить.

Отключить проверку Driver Verifier можно из командной строки:

Или из графического интерфейса, выбрав пункт Delete existing settings.

В том случае, если в нормальном режиме войти в систему не получается, отключить режим отладки можно и из безопасного режима.

В том случае, если и в безопасном режиме система не загружается, попробуйте удалить следующие ключи в реестре в офлайн режиме, загрузившись с загрузочного диска:

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\VerifyDrivers
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\VerifyDriverLevel

Проверить текущий статус утилиты Driver Verifier можно так:

Driver Verifier Manager (Windows XP and later)

The Windows XP and later version of Driver Verifier Manager begins with a screen which allows you to select one of five tasks. Whichever task you choose, you will be shown a series of screens that can be navigated by using the Back and Next buttons.

When this sequence is complete, use the Finish button to save any changes you have made and exit Driver Verifier Manager. If you wish to discard your changes, use the Cancel button.

The following tasks can be chosen from the first screen of Driver Verifier Manager:

Create standard settings
Selects a standard set of Driver Verifier options, and then allows you to select the drivers to be verified. These settings will take effect after the next boot. See Selecting Driver Verifier Options and Selecting Drivers to be Verified for details.

Create custom settings
Displays all Driver Verifier options and lets you select from among them. Then, it allows you to select the drivers to be verified. These settings will take effect after the next boot. See Selecting Driver Verifier Options and Selecting Drivers to be Verified for details.

Читайте также:  Системные цвета windows 10

Delete existing settings
Deactivates all of Driver Verifier Manager options and deletes the list of drivers being verified. This takes effect after the next boot.

Display existing settings
Display the options that will be activated and the drivers that will be verified after the next boot. It does not include any volatile settings. See Viewing Driver Verifier Settings for details.

Display information about the currently-verified drivers
This will display statistics related to Driver Verifier’s actions. See Monitoring Global Counters and Monitoring Individual Counters for details. It will also allow you to view and alter Driver Verifier’s volatile actions. See Using Volatile Settings.

Driver Verifier: Проверка плохих драйверов в Windows 10

Неисправный драйвер может вызвать много проблем для компьютера. Самый распространенный признак того, что драйвера нуждаются в обновлении — это «синий экран смерти». К счастью, этот синий экран показывают нам коды ошибок, дампов памяти, что позволяет выявить причину в том или ином драйвере, устройстве и обновить его или удалить. Становиться сложно, когда дампы памяти и коды ошибок не помогают или компьютер даже не показывает коды ошибок, а просто блокирует систему. Что делать в этих случаях?

Встроенная в систему Windows Driver Verifier создан для проверки драйверов, путем вызова дополнительных нагрузок на системные драйвера и стресс тестов, чтобы спровоцировать аварию. Это поможет вам выявить плохие драйвера в Windows.

Подготовка системы к проверке драйверов windows 10

Перед включением Driver Verifier, обратите внимания, что драйвера могут заблокировать вас из вашего же компьютера, если вы не будете осторожны. Driver Verifier при обнаружении плохого драйвера выдаст вам синий экран, если их несколько, то образуется цикл загрузка>загрузка>краш и вы не сможете запуститься обратно в систему windows, чтобы отключить краш-тест системных драйверов. По этому мы подготовимся на всякий пожарный, а то в наше время русское «авось прокатит» уже слабо работает. Перед включением проверки драйверов сделайте одно из следующих.

  • Проверить, что вы можете легко загрузиться в безопасном режиме без необходимости БИОСА. Обычными словами, вход в безопасный режим должен быть выполнен с помощью рабочего стола windows. Зажмите Shift+перезагрузка, нажав и удерживая кнопку шифт нажмите мышкой на перезагрузка. Попробуйте другим способом, установить вариант загрузки в безопасном режиме вручную через Windows.
  • Создайте точку восстановления системы, отключив при этом антивирусные продукты. Откройте поиск Windows и наберите Создание точки восстановления, выберите из предложенного и действуйте предложенной вам инструкции.
  • Создать диск восстановления для вашего компьютера, чтобы был доступ к командной строке через параметры при использовании диска восстановления.
  • Можете создать полную резервную копию вашей системы или любых других данных за которые вы переживаете.
  • Обязательно прочтите мой краш-тест в конце статьи. Он поможет вам в случае неудачи, которая произошла со мной.

Активация функции windows Driver Verifier

Перед активацией драйверов, убедитесь, что вы прочитали выше раздел, как обезопасит себя от бесконечной загрузки.

  • Нажмите Windows+R и введите cmd, чтобы вызвать командную строку.

В ведите следующий код в командную строку:

Укажите пункт Создать нестандартные параметры (для кода программ).

Выберите все пункты, кроме «Проверка соответствия требованиям DDI» и «Эмуляция случайной нехватки ресурсов».

Далее «Выбрать имя драйвера из списка».

Нажмите на столбец поставщик, чтобы сделать сортировку. Выделять все драйвера не обязательно, только от других поставщиков, где нет надписи Microsoft Corporation. Если вы уверены, что ошибка в каком-либо драйвере, то выделите все пункты галочками.

После всех настроек нажмите Готово и вам будет сказано, что проверка будет произведена после перезагрузке системы. Если средство проверки выдаст синий экран, то запишите код ошибки, дамп памяти и перезагрузите компьютер.

Отключить проверку драйверов

Вернувшись в windows вы можете отключить проверку драйверов одним из следующих способов:

  • Зайдите обратно, как и заходили через командную строку и выберите пункт удалить существующие параметры.

Откройте командную строку и введите следующий код:

  • verifier /bootmode resetonbootfail

Driver Verifier: What’s New

Driver Verifier is available in all versions of Windows starting with WindowsВ 2000. Each version introduces new features and checks for finding bugs in Windows drivers. This section summarizes the changes and provides links to related documentation.

Driver Verifier in WindowsВ 10 (Updated: May 8, 2018)

For info about enabling WDF Verifier on Windows 10, version 1803 or more recent releases, see Using KMDF Verifier.

  • You can still enable WDF verification as part of Driver Verifier’s /standard flags. See Driver Verifier Command Syntax for more information.
  • This change will impact you if you are enabling DV with syntax /flags 0x209BB as WDF verification will no longer be automatically enabled.

Starting with Windows 10, driver verifier includes new driver validation rules for the following technologies:

Driver Verifier in Windows 8-1 (Updated: June 17, 2013)

Starting with Windows 8.1, Driver Verifier introduces four new options for detecting errors.

Читайте также:  Полное восстановление служб windows

The NDIS/WIFI verification option applies a set of NDIS and wireless LAN rules that check for the proper interaction between an NDIS miniport driver and the operating system kernel.

The Systematic low resources simulation option injects resource failures in kernel mode drivers.

The Kernel synchronization delay fuzzing option randomizes thread schedules to help detect concurrency bugs in the driver.

The VM switch verification option monitors filter drivers (extensible switch extensions) that run inside the Hyper-V Extensible Switch.

Driver Verifier in Windows 8 (Updated: October 20, 2012)

Starting with Windows 8, Driver Verifier introduces five new options for detecting errors.

  • The Power Framework Delay Fuzzing option inserts random execution delays to help detect concurrency bugs in drivers that use the power management framework (PoFx). The execution delays have upper-time limits. This option is not recommended for drivers that do not directly utilize the power management framework (PoFx).
  • The DDI compliance checking option applies the same device driver interface (DDI) usage rules that Static Driver Verifier uses to verify that your driver makes function calls at the required IRQL for the function. The DDI compliance checking is run as part of the standard Driver Verifier options.
  • The Invariant MDL Checking for Stack option monitors how the driver handles invariant MDL buffers across the driver stack.
  • The Invariant MDL Checking for Driver option monitors how the driver handles invariant MDL buffers on a per-driver basis.
  • The Stack Based Failure Injection option injects resource allocation failures in kernel mode drivers.

When you build, deploy, and test your driver using Visual Studio 2012 and the WDK for Windows 8, you can also configure Driver Verifier to run on a test computer when you deploy your driver for testing.

Driver Verifier in Windows 7 (Updated: October 22, 2012)

For Windows 7, Driver Verifier has been enhanced with new tests and features that allow Driver Verifier to expose more classes of typical driver bugs.

  • Incorrect References to User Handles from Kernel Drivers
  • I/O Verification Improvements
  • Special Pool, Pool Tracking, and Low Resources Simulation Improvements
  • Incorrect Usage of Synchronization Mechanisms
  • Incorrect Object References
  • Pool Quota Charges from DPC Routine
  • System Shutdown Blocks or Delays
  • Improved Force Pending I/O Requests

In Windows 7, Driver Verifier provides checks for queued spin locks, these checks resemble those provided to spin locks in earlier Windows versions. These checks include the following:

Verifying that an operation that should raise the interrupt request level (IRQL) value, such as KeAcquireInStackQueuedSpinLock, is not actually lowering the IRQL value.

Verifying that an operation that should lower the IRQL value, such as KeReleaseInStackQueuedSpinLock, is not actually raising the IRQL value.

Trimming the System process’s working set if the Force IRQL Checking option is enabled, when the IRQL is being raised to DISPATCH_LEVEL or above, in an attempt to expose possible references to pageable memory while the driver is running at elevated IRQL.

Predicting possible deadlocks when the Deadlock Detection option is enabled.

Trying to use the same KSPIN_LOCK data structure both as a spin lock and as a stack queued spin lock when the Deadlock Detection option is enabled.

Checking for obviously incorrect pointer values, such as a user-mode virtual address that is used as a spin lock address.

Logging IRQL transitions in the Driver Verifier IRQL log. This information appears when you use the !verifier 8 extension of the Windows Debuggers. See !verifier.

Additional Debugging Information

In Windows 7, Driver Verifier provides the following additional information that is useful for debugging:

There is a log with stack traces in chronological order for recent calls to KeEnterCriticalRegion and KeLeaveCriticalRegion from verified drivers. The log contents are displayed by using the !verifier 0x200 debugger extension of the Windows Debuggers. This information can be useful for understanding scenarios in which a thread is unexpectedly running in a critical region or is trying to leave a critical region that it has left already.

You can display additional information from the Force Pending I/O Requests Log by using the !verifier 0x40 debugger extension. In earlier Windows versions, the log contained just one stack trace for each IRP that Driver Verifier forced to be pending. This was the stack trace from the time when IoCompleteRequest was called for the first time for the forced pending IRP. Windows 7 has at least two log entries, possibly more than two, for each forced pending IRP:

  • Stack trace at the time when Driver Verifier picked the IRP to be forced pending. Driver Verifier chooses some of the IRPs to be forced pending when one of the verified drivers calls IoCallDriver.
  • Stack traces for each IoCompleteRequest call for the forced pending IRP before the completion reaches the verified driver. More than one IoCompleteRequest call can exist for the same IRP because one of the drivers can temporarily stop the completion from its completion routine and then resume it by calling IoCompleteRequest again.
Читайте также:  Kali linux имя пользователя пароль

There are more valid stack traces in the IRQL Transition log. This log is displayed by using !verifier 8. In Windows versions earlier than Windows 7, Driver Verifier could have tried to log some of these stack traces at elevated IRQL and failed to capture the stack trace because of the high IRQL value. In Windows 7, Driver Verifier tries to capture these stack traces:

  • Before raising the IRQL, for example, when a verified driver calls KeAcquireSpinLock.
  • After the IRQL is lowered, when a verified driver calls KeReleaseSpinLock.

In this way, Driver Verifier can capture more of these IRQL transition stack traces.

!analyze can triage issues that are exposed by the Enhanced I/O Verifier checks (that are part of I/O Verifier in Windows 7). In earlier Windows versions, the Enhanced I/O Verifier error reporting consisted of displaying a description of the driver defect that was detected by Driver Verifier followed by a break into debugger. Running !analyze after such a break does not result in meaningful triage for many of these breaks because !analyze cannot use the information from the error description text that appears in the debugger. In Windows 7, the meaningful information about these driver defects is saved by Driver Verifier in memory. !analyze can find this information and perform a much more meaningful automatic triage for many of these breaks.

Driver Verifier in Windows Vista (Updated: February 9, 2009)

For Windows Vista, Driver Verifier has been enhanced with new tests and features.

  • Enabling Driver Verifier and Changing Settings without Rebooting
  • Enhanced Low Resources Simulation
  • Force Pending I/O Requests
  • Security Checks
  • More Thorough I/O Verification
  • Enhanced IRQL Checking
  • Miscellaneous Checks
  • Locked Memory Page Tracking
  • Additional Automatic Checks

Driver Verifier in Windows XP (Updated: December 4, 2001)

Driver Verifier is a tool for monitoring Windows kernel-mode drivers and graphics drivers. Microsoft strongly encourages hardware manufacturers to test their drivers with Driver Verifier to ensure that drivers are not making illegal function calls or causing system corruption. Driver Verifier has been enhanced with new tests and features for Microsoft Windows XP.

Drivers submitted to WHQL for testing must pass Driver Verifier. New Driver Verifier features in Windows XP include:

  • Driver Verifier Manager, an all-new graphical user interface (GUI) for verifier.exe
  • New automatic check for Monitoring Stack Switching
  • New Driver Verifier options for DMA Verification (also known as HAL Verification), Deadlock Detection, and SCSI Verification
  • I/O Verification changes that combine «Level 1» and «Level 2» tests, optional Enhanced I/O Verification tests
  • New debugger extensions !deadlock and !dma
  • New bug checks: 0xE6 (DRIVER_VERIFIER_DMA_VIOLATION) and 0xF1 (SCSI_VERIFIER_DETECTED_VIOLATION)
  • Additional sub-codes for the existing bug check codes 0xC4 and 0xC9

Driver Verifier features also include:

New Verifier command line options The verifier.exe utility has a new parameter, VolatileDriverList, which can be used with the /adddriver keyword to specify a list of drivers to add to the volatile settings. VolatileDriverList can be used with the /removedriver keyword to specify a list of drivers to remove.

New !verifier extensions New !verifier extensions display additional log information when monitoring low resources or IRQL raises and spin locks. Online help is also available.

  • Flags set with 0x4 causes the display to include a log of faults injected by Driver Verifier during low resources simulation
  • Flags set with 0x8 causes the display to include a log of the most recent IRQL changes made by the drivers being verified
  • If Flags equals exactly 0x4 or 0x8, the Quantity parameter specifies the number of records or log entries to include in the display
  • The ? parameter shows a brief help text

Online Help for Driver Verifier Manager Online Help for Driver Verifier Manager can be displayed in either of the following ways:

  • Select and hold (or right-click) an item in the Driver Verifier Manager window and choose What’s This? from the pop-up menu.
  • Select the question mark (?) in the upper-right corner of the window and then select an item in the Driver Verifier Manager window.

—>

Оцените статью