Skip to main content

About Driver Verifier

Driver Verifier is an extremely useful tool for detecting errors in kernel-mode drivers. It tests and traps many conditions that might otherwise go unnoticed in normal operation. Driver Verifier verifies that drivers are not making illegal function calls or causing system corruption. It can identify conditions such as memory corruption, mishandled I/O request packets (IRPs), invalid direct memory access (DMA) buffer usage, and possible deadlocks.

Running Driver Verifier throughout the development and test process can help find problems early in the development life cycle, when they are easier and cheaper to correct. Driver Verifier can be run as a command-line tool or with a graphical user interface. The !verifier extension in the kernel debugger can be used to monitor and report on statistics related to Driver Verifier in context of a debugging session.

The requirements for the Windows logo program state that a driver must not fail while running under Driver Verifier.

Driver Verifier is installed with all versions of Windows Vista, Windows Server 2003, Windows XP, andstarting with Windows 2000, so it can also be used on customer computers to troubleshoot problems in the field.

Driver Verifier in Windows Developer Preview

Starting with Windows Developer Preview, Driver Verifier introduces two new options for detecting errors.

The Concurrency stress test option randomizes thread schedules to help detect concurrency bugs in the driver.

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 Verifieroptions. When you build, deploy, and test your driver using Visual Studio, you can also configure Driver Verifier to run on a test computer when you deploy your driver for testing.

Top of page Top of page