Table of contents
TOC
Collapse the table of content
Expand the table of content

Determining if Static Driver Verifier supports your driver or library

Last Updated: 11/22/2016

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.

1394bus.libfltMgr.librdbss.libusbrpm.lib
acpi.libFsDepends.libRNDISMP.libvideoprt.lib
armppm.libfwpkclnt.libRNDISMP6.libvwififlt.lib
ataport.libhidclass.libRNDISMPX.libwatchdog.lib
ath_hwpci.libhidparse.librpcxdr.libwin32k.lib
athhal.libhwpolicy.libSaha.libwinhv.lib
battc.libipmidrv_hrmcust.libscsiport.libWMBBCLASS.lib
BdaSup.libirt30.libsmclib.lib
bdl.libirt30.libSoft1667FaultInjectionLimpetPool.lib
btampm.libks.libSoftFCKernel.lib
bthport.libksecdd.libSoftFCLimpetPool.lib
BTHPRINT.libksmartcpu.libSoftSATAKernel.lib
classpnp.libmcd.libSoftStorageLimpetPool.lib
clfs.libmpio.libsrvnet.lib
cng.libmrxsmb.libstorvsp.lib
crashdmp.libmsnfsflt.libstream.lib
csr_vfp_avdtp.libmsrpc.libtape.lib
diskdump.libmup.libtbs.lib
drmk.libndistapi.libtcpip.lib
dumpata.libnetio.libtdi.lib
dumpfve.libntasn1k.libtermdd.lib
dxapi.libparallel.libUSBCAMD.lib
dxg.libpciidex.libUSBCAMD2.lib
dxgkrnl.libportcls.libusbd.lib
dxgmms1.libprotogon.libusbport.lib

Known utility 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.

BufferOverflowK.lib
hal.lib
ntoskrnl.lib
ntstrsafe.lib
rtlver.lib
sehupd.lib
wdm.lib
wmilib.lib
wdmsec.lib

Send comments about this topic to Microsoft

© 2017 Microsoft