verifier
Driver Verifier monitors Windows kernel-mode drivers and graphics drivers to detect illegal function calls or actions that might corrupt the system. Driver Verifier can subject Windows drivers to a variety of stresses and tests to find improper behavior. You can configure which tests to run, which allows you to put a driver through heavy stress loads or through more streamlined testing. You can also run Driver Verifier on multiple drivers simultaneously, or on one driver at a time.
Important
You must be in the Administrators group on the computer to use Driver Verifier. Running Driver Verifier can cause the computer to crash, so you should only run this utility on computers used for testing and debugging.
Syntax
verifier /standard /all
verifier /standard /driver NAME [NAME ...]
verifier /flags <options> /all
verifier /flags <options> /driver NAME [NAME ...]
verifier /rules [OPTION ...]
verifier /query
verifier /querysettings
verifier /bootmode [persistent | disableafterfail | oneboot]
verifier /reset
verifier /faults [Probability] [PoolTags] [Applications] [DelayMins]
verifier /faultssystematic [OPTION ...]
verifier /log LOG_FILE_NAME [/interval SECONDS]
verifier /volatile /flags <options>
verifier /volatile /adddriver NAME [NAME ...]
verifier /volatile /removedriver NAME [NAME ...]
verifier /volatile /faults [Probability] [PoolTags] [Applications] [DelayMins]
verifier /domain <types> <options> /driver ... [/logging | /livedump]
verifier /logging
verifier /livedump
verifier /?
verifier /help
Parameters
Parameter | Description |
---|---|
/all | Directs the Driver Verifier utility to verify all installed drivers after the next boot. |
/bootmode [persistent \| disableafterfail \| oneboot \| resetonunusualshutdown] |
Controls whether the settings for the Driver Verifier utility are enabled after a reboot. To set or change this option, you must reboot the computer. The following modes are available:
|
/driver <driverlist> |
Specifies one or more drivers that will be verified. The driverlist parameter is a list of drivers by binary name, such as driver.sys. Use a space to separate each driver name. Wildcard values, such as n*.sys , aren't supported. |
/driver.exclude <driverlist> |
Specifies one or more drivers that will be excluded from verification. This parameter is applicable only if all drivers are selected for verification. The driverlist parameter is a list of drivers by binary name, such as driver.sys. Use a space to separate each driver name. Wildcard values, such as n*.sys , aren't supported. |
/faults | Enables the Low Resources Simulation feature in the Driver Verifier utility. You can use /faults in place of /flags 0x4 . However, you can't use /flags 0x4 with the /faults subparameters. You can use the following subparameters of the /faults parameter to configure the Low Resources Simulation:
|
/faultssystematic | Specifies the options for Systematic Low Resources simulation. Use the 0x40000 flag to select the Systematic Low Resources simulation option. The following options are available:
|
/flags <options> |
Activates the specified options after the next reboot. This number can be entered in decimal or in hexadecimal (with an 0x prefix) format. Any combination of the following values is allowed:
|
/flags <volatileoptions> |
Specifies the Driver Verifier utility options that are changed immediately without rebooting.This number can be entered in decimal or in hexadecimal (with an 0x prefix) format. Any combination of the following values is allowed:
|
<probability> |
Number between 1 and 10,000 specifying the fault injection probability. For example, specifying 100 means a fault injection probability of 1% (100/10,000). if this parameter isn't specified, the default probability of 6% is used. |
<tags> |
Specifies the pool tags that will be injected with faults, separated by space characters. If this parameter is not specified, then any pool allocation can be injected with faults. |
<apps> |
Specifies the image file name of the apps that will be injected with faults, separated by space characters. If this parameter isn't specified, then low resources simulation can take place in any application. |
<minutes> |
A positive number specifying the length of the period after rebooting, in minutes, during which no fault injection will occur. If this parameter isn't specified, then the default length of 8 minutes is used. |
/iolevel <level> |
Specifies the level of I/O Verification. The value of [level] can be 1 - Enables Level 1 I/O Verification (default) or 2 - Enables Level 1 I/O Verification and Level 2 I/O Verification. If I/O Verification isn't enabled (by using /flags 0x10 ), /iolevel is ignored. |
/log <logfilename> [/intervalseconds] |
Creates a log file using the specified name. The Driver Verifier utility periodically writes statistics to this file, based on the interval you optionally set. The default interval is 30 seconds. If a verifier /log command is typed at the command line, the command prompt doesn't return. To close the log file and return a prompt, use the CTRL+C key. After a reboot, to create a log, you must submit the verifier /log command again. |
/rules <option> |
Options for rules that can be disabled, including:
|
/standard | Activates the "standard" or default Driver Verifier options after the next restart. The standard options are Special Pool, Force IRQL Checking, Pool Tracking, I/O Verification, Deadlock Detection, DMA Verification, Security Checks, Miscellaneous Checks, and DDI compliance checking. This is equivalent to /flags 0x209BB .[!NOTE] Starting in Windows 10 versions after 1803, using |
/volatile | Changes the settings without rebooting the computer. Volatile settings take effect immediately. You can use the /volatile parameter with the /flags parameter to enable and disable some options without rebooting. You can also use /volatile with the /adddriver and /removedriver parameters to start or stop the verification of a driver without rebooting, even if the Driver Verifier utility isn't running. For more information, see Using Volatile Settings. |
/adddriver <volatiledriverlist> |
Adds the specified drivers from the volatile settings. To specify multiple drivers, list their names, separated by spaces. Wildcard values, such as n.sys, aren't supported. |
/removedriver <volatiledriverlist> |
Removes the specified drivers from the volatile settings. To specify multiple drivers, list their names, separated by spaces. Wildcard values, such as n.sys, aren't supported. |
/reset | Clears all the Driver Verifier utility settings. After the next restart, no drivers will be verified. |
/querysettings | Displays a summary of the options that will be activated and drivers that will be verified after the next boot. The display doesn't include drivers and options added by using the /volatile parameter. For other ways to view these settings, see Viewing Driver Verifier Settings. |
/query | Displays a summary of the Driver Verifier utility's current activity. The Level field in the display is the hexadecimal value of options set with the /volatile parameter. For explanations of each statistic, see Monitoring Global Counters and Monitoring Individual Counters. |
/domain <types> <options> |
Controls the verifier extension settings. The following verifier extension types are supported:
|
/logging | Enables logging for violated rules detected by the selected verifier extensions. |
/livedump | Enables live memory dump collection for violated rules detected by the selected verifier extensions. |
/? | Displays command-line help. |
Return Codes
The following values are returned after driver verifier has run:
0: EXIT_CODE_SUCCESS
1: EXIT_CODE_ERROR
2: EXIT_CODE_REBOOT_NEEDED
Remarks
- You can use the /volatile parameter with some of the Driver Verifier utility /flags options and with /standard. You can't use /volatile with the /flags options for DDI compliance checking, Power Framework Delay Fuzzing, Storport Verification, or SCSI Verification. For more information, see Using Volatile Settings.