21.1.4. Verifying
Drivers with the Verifier Utility
The Verifier utility
performs general driver verification on your system through the Driver
Verifier. Driver vendors are supposed to use this utility to ensure
their drivers don't make illegal system calls or cause system
corruption. You can use Verifier to ensure you do have good drivers
loaded on your system and that a virus hasn't modified the driver files
on your machine. Most of the drivers on your machine appear in the \WINDOWS\system32\drivers folder and have a SYS file extension. This
utility uses the following syntax:
verifier /standard /driver NAME [NAME ...]
verifier /standard /all
verifier [/disk] [ /flags FLAGS ] /driver NAME [NAME ...]
verifier [/disk] [ /flags FLAGS ] /all
verifier /querysettings
verifier /volatile /flags FLAGS
verifier /volatile /adddriver NAME [NAME ...]
verifier /volatile /removedriver NAME [NAME ...]
verifier /reset
verifier /query
verifier /log LOG_FILE_NAME [/interval SECONDS]
The following list
describes each of the command line arguments.
/standard
Performs a standard
check of the specified drivers during the next boot cycle. The standard
check includes the Special Memory Pool, Forcing Interrupt Request Level
(IRQL) Checking, Memory Pool Tracking, I/O Verification (but not the
enhanced version), Deadlock Detection, and DMA Verification checks.
Technically, every driver on your machine should be able to pass a
standard check. The driver vendor should provide you with information
about any drivers that won't pass the Verifier checks.
/driver NAME [NAME ...]
Checks one or
more drivers with a specific name during the next boot cycle. Use this
command line option to check one or two specific drivers, rather than
checking all of the drivers on the machine. Separate each driver name
with a space. You can't use wildcard characters to define a filename
specification.
/all
Verifies all of
the drivers on the machine.
/flags
FLAGS
Performs a
specific check using the tests defined by the supplied bit flags. For
example, if you want to check both special pool checking and force IRQL
checking, then you would supply a flag value of 00000011b (binary) or 3
(decimal). You can specify the flag values in hexadecimal by preceding
the flag value with 0x. The following list describes each of the flags.
Bit 0
Special Pool Checking
Bit 1
Force IRQL Checking
Bit 2
Low Resources Simulation
Bit 3
Pool Tracking
Bit 4
I/O Verification
Bit 5
Deadlock Detection
Bit 6
Enhanced I/O Verification
Bit 7
DMA Verification
/querysettings
Displays a summary of
the nonvolatile Driver Verifier settings. These options include the
options you have selected and the list of drivers selected for
verification.
/volatile
Forces a change
to the Driver Verifier volatile settings. These changes take effect
immediately, rather than during the next boot cycle. The settings last
until you reboot the machine, so they aren't permanent. You can only
perform the Special Memory Pool, Forcing IRQL Checking, and Low
Resources Simulation checks when using volatile settings.
/adddriver NAME [NAME ...]
Adds the specified
driver to the volatile driver list. Separate each driver name with a
space. You can't use wildcard characters to define a filename
specification.
/removedriver NAME [NAME ...]
Removes the
specified driver from the volatile driver list. Separate each driver
name with a space. You can't use wildcard characters to define a
filename specification.
/reset
Clears all of the
Driver Verifier settings. The Driver Verifier won't verify any drivers
during the next boot cycle.
/query
Displays a list of
the current Driver Verifier activity.
/log
LOG_FILE_NAME [/interval
SECONDS]
Creates a log file
with the specified name. At specific intervals, the log records the
Driver Verifier statistics. The default logging interval is 30 seconds.
You can specify the logging interval using the /interval command line switch. The utility won't stop when
you issue this command at the command prompt. To stop the recording
process and regain control of the command prompt, press Ctrl+C.
/disk
Enables the Disk
Integrity Verification option after the next system boot. This option
is only available for Windows 2003 and above.