Windows Driver Kit: Driver Development Tools
Static Driver Verifier
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. 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.
SDV (Staticdv.exe) is included in the Microsoft Windows Driver Kit (WDK) in the \tools\sdv subdirectory of the WDK.
Use SDV near the end of the development cycle on drivers that have been built and are approaching their test cycle.
Finding Bugs in Windows Driver Code
Microsoft uses SDV to test the sample drivers that are included in the WDK and to test the kernel-mode drivers that are included with the Microsoft Windows operating system. Prior to the release of Windows Vista, Microsoft used SDV to find and subsequently fix the following bugs:
- 33 critical bugs in the WDK sample drivers
- 53 critical bugs in kernel-mode drivers
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. For example, SDV found a bug in the WDK sample, moufiltr, where the driver’s dispatch routine was returning STATUS_PENDING, but it had also called IoCompleteRequest on the incoming IRP. SDV also found bugs in other WDK samples where functions were called at the incorrect IRQL and bugs where the driver passed a NULL to ExFreePool, serious problems and potential causes of bug checks.
Comments
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.