Windows Driver Verifier

Comprehensive Documentation for Driver Developers

Introduction to Windows Driver Verifier

Windows Driver Verifier is a debugging utility that runs in the background and monitors kernel-mode drivers. It is designed to detect and diagnose driver errors that might otherwise cause system instability, crashes (Blue Screens of Death), or data corruption.

By actively checking driver behavior against a set of rules and conditions, Verifier can catch bugs that are often missed by traditional debugging techniques. This makes it an indispensable tool for driver developers aiming to ensure the stability and reliability of their code.

Key Features and Benefits

Getting Started with Driver Verifier

Driver Verifier is typically run from the command line or via the graphical interface. Here’s a basic overview of how to start using it:

Using the Command Line Tool (`verifier.exe`)

To launch Driver Verifier Manager, open an elevated Command Prompt or PowerShell and type:

verifier.exe

Configuring Verifier Rules

Once Verifier Manager is open, you can select which drivers to monitor and which types of checks to perform. Common configurations include:

Tip: It is highly recommended to start with "Standard Checks" and enable "I/O Verification" for most driver development scenarios.

Selecting Drivers

You can choose to:

Common Driver Verifier Settings

Driver Verifier offers a variety of specialized checks:

Key Verification Levels:

Note: Enabling too many checks simultaneously can significantly impact system performance. Start with the essential checks and gradually enable more as needed.

Interpreting Verifier Output

When Driver Verifier detects an error, it will typically trigger a bug check (BSOD). The bug check code and parameters often provide clues about the nature of the problem. You will usually see a message on the BSOD screen indicating that Driver Verifier has found a problem.

After a crash, the system may generate a dump file. Analyzing this dump file with a debugger like WinDbg is crucial for pinpointing the exact source of the driver error. Driver Verifier's output within the debugger will often highlight the failing driver and the specific violation detected.

Troubleshooting and Best Practices