Partager via


Déterminer si Static Driver Verifier prend en charge votre pilote ou votre bibliothèque

Static Driver Verifier (SDV) prend entièrement en charge les bibliothèques et les pilotes WDM, KMDF, NDIS et Storport, et a une prise en charge limitée pour les autres pilotes. Pour déterminer si votre pilote ou votre bibliothèque est pris en charge et configuré correctement, lisez les exigences décrites dans cette section.

Configuration requise pour les pilotes ou les bibliothèques

Vous pouvez exécuter l’ensemble complet de règles dans l’outil d’analyse SDV si votre pilote ou votre bibliothèque répond à l’une des conditions suivantes et n’est liée à aucune des bibliothèques d’infrastructure de classes répertoriées ci-dessous.

  • Vous disposez d’un pilote ou d’une bibliothèque WDM.
  • Vous disposez d’un pilote ou d’une bibliothèque qui établit un lien vers WdfLdr.lib ou WdfDriverEntry.lib.
  • Vous disposez d’un pilote ou d’une bibliothèque qui établit un lien vers NDIS.lib.
  • Vous disposez d’un pilote ou d’une bibliothèque qui est lié à Storport.lib.

Si vous avez un pilote qui se trouve en dehors des conditions ci-dessus, SDV considérera le pilote « générique » et exécutera un ensemble limité de vérifications.

En outre, notez que les bibliothèques vérifiées par SDV doivent être des bibliothèques de pilotes en mode noyau, et non des bibliothèques générales C ou C++.

Static Driver Verifier prend en charge un pilote ou une bibliothèque qui passe ces conditions, même si le pilote ou la bibliothèque est lié à plusieurs bibliothèques d’utilitaires.

En outre, pour effectuer l’analyse, SDV nécessite que :

  • Le pilote a déclaré au moins un point d’entrée à l’aide de déclarations de type de rôle de fonction.
  • Le pilote génère et lie correctement (dans Visual Studio à l’aide de MSBuild).
  • Si le pilote ou la bibliothèque utilise KMDF, le pilote ou la bibliothèque utilise KDMF version 1.7 ou ultérieure.
  • Si le pilote ou la bibliothèque utilise NDIS, elle utilise NDIS version 6.0, 6.1, 6.20, 6.30 ou 6.40. Notez que cette liste est susceptible d’être modifiée.
  • Le pilote ne combine pas de modèles de pilotes (par exemple, KMDF avec WDM, ou KMDF et NDIS).

D’autres facteurs affectent la qualité et la précision des résultats de l’analyse statique. Exemples de facteurs :

  • Utilisation de bibliothèques d’utilitaires qui n’ont pas été traitées par SDV.
  • Taille du pilote, en particulier s’il a plus de 100 000 lignes de code.
  • Utilisation de fonctionnalités spécifiques au langage, telles que les fonctions virtuelles et l’arithmétique de pointeur.

Configuration requise du projet Visual Studio

Pour utiliser Static Driver Verifier, le projet Visual Studio doit avoir les paramètres suivants :

  • UseDebugLibraries = false
  • Plateforme = Win32 (x86) ou x64

Bibliothèques d’infrastructure de classes

Si vous disposez d’un pilote ou d’une bibliothèque WDM et que vous souhaitez exécuter SDV, le pilote ou la bibliothèque ne doit pas être lié à l’une des bibliothèques d’infrastructure de classes suivantes.

1394bus.lib fltMgr.lib rdbss.lib usbrpm.lib
acpi.lib FsDepends.lib RNDISMP.lib videoprt.lib
armppm.lib fwpkclnt.lib RNDISMP6.lib vwififlt.lib
ataport.lib hidclass.lib RNDISMPX.lib watchdog.lib
ath_hwpci.lib hidparse.lib rpcxdr.lib win32k.lib
athhal.lib hwpolicy.lib Saha.lib winhv.lib
battc.lib ipmidrv_hrmcust.lib scsiport.lib WMBBCLASS.lib
BdaSup.lib irt30.lib smclib.lib
bdl.lib irt30.lib Soft1667FaultInjectionLimpetPool.lib
btampm.lib ks.lib SoftFCKernel.lib
bthport.lib ksecdd.lib SoftFCLimpetPool.lib
BTHPRINT.lib ksmartcpu.lib SoftSATAKernel.lib
classpnp.lib mcd.lib SoftStorageLimpetPool.lib
clfs.lib mpio.lib srvnet.lib
cng.lib mrxsmb.lib storvsp.lib
crashdmp.lib msnfsflt.lib stream.lib
csr_vfp_avdtp.lib msrpc.lib tape.lib
diskdump.lib mup.lib tbs.lib
drmk.lib ndistapi.lib tcpip.lib
dumpata.lib netio.lib tdi.lib
dumpfve.lib ntasn1k.lib termdd.lib
dxapi.lib parallel.lib USBCAMD.lib
dxg.lib pciidex.lib USBCAMD2.lib
dxgkrnl.lib portcls.lib usbd.lib
dxgmms1.lib protogon.lib usbport.lib

Bibliothèques d’utilitaires

Static Driver Verifier prend en charge un pilote ou une bibliothèque qui a des liens vers plusieurs bibliothèques d’utilitaires si le pilote ou la bibliothèque est conforme aux exigences du pilote ou de la bibliothèque.

Nom de fichier
BufferOverflowK.lib
hal.lib
ntoskrnl.lib
ntstrsafe.lib
rtlver.lib
sehupd.lib
wdm.lib
wmilib.lib
wdmsec.lib

Bibliothèques Static Driver Verifier et Microsoft Class Framework

Si vous utilisez des pilotes WDM qui doivent être liés à une bibliothèque d’infrastructure de classes dans la liste Bibliothèques d’infrastructure de classes, le pilote échoue à la condition du vérificateur de pilote statique. Toutefois, il existe certaines règles génériques qui peuvent toujours être utilisées, telles que la règle NullCheck pour effectuer un certain niveau de vérification statique.