Static Driver Verifier

Purpose

Static Driver Verifier (also known as "StaticDV" or "SDV") is a static verification tool that systematically analyzes the source code of Windows kernel-mode drivers. SDV is a compile time tool that is capable of discovering defects and design issues in a driver. Based on a set of interface rules and a model of the operating system, SDV determines whether the driver correctly interacts with the Windows operating system kernel.

What's new

Previously available in the WDK as a stand-alone tool, Static Driver Verifier is now integrated into Visual Studio. You can run static analysis on your Visual Studio driver project. You can launch, configure, and control Static Driver Verifier from the Driver menu in Visual Studio.

Static Driver Verifier Documentation

Using Static Driver Verifier to Find Defects in Drivers

Tells you what you need to get started analyzing your driver code in the Visual Studio environment.

Static Driver Verifier commands (MSBuild)

Lists the MSBuild commands to use to run SDV in a Visual Studio Command Prompt window.

Introducing Static Driver Verifier

Provides an overview of the static analysis tool.

Using Static Driver Verifier

Provides the details about using and configuring the static analysis tool.

Static Driver Verifier Report

Describes the viewer that displays the detailed trace of the static code analysis.

Static Driver Verifier Rules

The rules define the requirements for proper interaction between a driver model and the kernel interface of the operating system.

Static Driver Verifier Reference

Provides reference information about the function role types, SDV configuration files, error, and warning messages.

Static Analysis can reduce defects by up to a factor of six!

— Capers Jones, Software Productivity Group

Finding Bugs in Windows Driver Code

Microsoft uses SDV to test the kernel-mode drivers that are included with the Microsoft Windows operating system and to test the sample drivers in the WDK. Prior to the release of Windows 8, Microsoft used SDV to find and fix 127 potentially critical bugs.

By using the DDI compliance rules for specific driver models, SDV can verify correct driver behavior. For example, SDV can verify that the driver:

  • Calls functions at the correct IRQL

  • Acquires and releases locks in the correct sequence

  • Correctly uses functions that handle I/O request packets (IRP)

SDV examines all possible paths through the driver code. It is designed to find serious errors in obscure paths that are unlikely to be encountered even in thorough testing.

Resources

For specific information about the drivers that SDV can verify, see Supported Drivers.

For more information and tips about using Static Driver Verifier, see the Static Driver Tools blog.

 

 

 

Send comments about this topic to Microsoft

Show:
© 2014 Microsoft. All rights reserved.