Static Driver Verifier (SDV) can support WDM, KMDF, NDIS, and Storport drivers and libraries. To determine if your driver or library is supported and configured correctly, read over requirements described in this section.
Driver or library requirements
You can run the SDV analysis tool if your driver or library meets one of following conditions:
- You have a WDM driver or library, and the driver or library does not link to a class framework (that is, a Microsoft-provided library). For more information, see Class framework libraries.
- You have a driver or library that links to WdfLdr.lib or WdfDriverEntry.lib.
- You have a driver or library that links to NDIS.lib.
- You have a driver or library that links to Storport.lib.
Static Driver Verifier supports a driver or library that passes those conditions even if the driver or library links to multiple utility libraries.
In addition, to perform the analysis, SDV requires that:
- The driver has declared at least one entry point Using Function Role Type Declarations.
- The driver builds and links correctly (in Visual Studio using MSBuild).
- If the driver or library uses KMDF, the driver or library uses KDMF version 1.7 or later.
- If the driver or library uses NDIS, it uses NDIS version 6.0, 6.1, 6.20, 6.30, or 6.40. Note that this list is subject to change.
- The driver does not combine driver models (for example, KMDF with WDM, or KMDF and NDIS).
There are other factors that affect the quality and accuracy of the static analysis results. These factors include:
- Use of utility libraries that have not been processed by SDV.
- Size of the driver, particularly if it has more than 100K lines of code.
- Use of language-specific features, such as virtual functions and pointer arithmetic.
Visual Studio project requirements
To use Static Driver Verifier, the Visual Studio project must have the following settings:
- UseDebugLibraries = false
- Platform = Win32 (x86) or x64
Class framework libraries
If you have a WDM driver or library and want to run SDV, the driver or library must not link to one of the following class framework libraries.
Static Driver Verifier supports a driver or library that has links to multiple utility libraries if the driver or library conforms to the Driver or Library requirements.