Condividi tramite


Determinare se Static Driver Verifier supporta il driver o la libreria

Static Driver Verifier (SDV) supporta completamente i driver e le librerie WDM, KMDF, NDIS e Storport e offre un supporto limitato per altri driver. Per determinare se il driver o la libreria è supportato e configurato correttamente, leggere i requisiti descritti in questa sezione.

Requisiti del driver o della libreria

È possibile eseguire il set completo di regole nello strumento di analisi SDV se il driver o la libreria soddisfa una delle condizioni seguenti e non si collega ad alcuna delle librerie del framework di classe elencate di seguito.

  • È disponibile un driver o una libreria WDM.
  • È disponibile un driver o una libreria che si collega a WdfLdr.lib o WdfDriverEntry.lib.
  • È disponibile un driver o una libreria che si collega a NDIS.lib.
  • È disponibile un driver o una libreria che si collega a Storport.lib.

Se si dispone di un driver che non rientra nelle condizioni precedenti, SDV considererà il driver "generico" ed eseguirà un set limitato di controlli.

Si noti inoltre che le librerie verificate da SDV devono essere librerie driver in modalità kernel, non librerie C o C++ generali.

Static Driver Verifier supporta un driver o una libreria che supera tali condizioni anche se il driver o la libreria collega a più librerie di utilità.

Inoltre, per eseguire l'analisi, SDV richiede che:

  • Il driver ha dichiarato almeno un punto di ingresso Usando Dichiarazioni del Tipo di Ruolo delle Funzioni.
  • Il driver compila e collega correttamente (in Visual Studio usando MSBuild).
  • Se il driver o la libreria usa KMDF, il driver o la libreria usa KDMF versione 1.7 o successiva.
  • Se il driver o la libreria usa NDIS, usa NDIS versione 6.0, 6.1, 6.20, 6.30 o 6.40. Si noti che questo elenco è soggetto a modifiche.
  • Il driver non combina modelli di driver, ad esempio KMDF con WDM o KMDF e NDIS.

Esistono altri fattori che influiscono sulla qualità e l'accuratezza dei risultati dell'analisi statica. Questi fattori includono:

  • Uso di librerie di utilità che non sono state elaborate da SDV.
  • Dimensioni del driver, in particolare se contiene più di 100.000 righe di codice.
  • Uso di funzionalità specifiche del linguaggio, ad esempio funzioni virtuali e aritmetiche del puntatore.

Requisiti del progetto di Visual Studio

Per usare Static Driver Verifier, il progetto di Visual Studio deve avere le impostazioni seguenti:

  • UseDebugLibraries = falso
  • Platform = Win32 (x86) o x64

Librerie del framework di classe

Se si dispone di un driver o di una libreria WDM e si vuole eseguire SDV, il driver o la libreria non deve essere collegato a una delle librerie di framework di classi seguenti.

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

Librerie di utilità

Static Driver Verifier supporta un driver o una libreria con collegamenti a più librerie di utilità se il driver o la libreria sono conformi ai requisiti di driver o libreria.

Nome del file
BufferOverflowK.lib
hal.lib
ntoskrnl.lib
ntstrsafe.lib
rtlver.lib
sehupd.lib
wdm.lib
wmilib.lib
wdmsec.lib

Static Driver Verifier e librerie del Microsoft Class Framework

Se si utilizzano driver WDM che devono collegarsi a una libreria del framework di classi nell'elenco delle librerie del framework di classi, il driver non supererà il controllo della condizione di verifica del driver statico. Esistono tuttavia alcune regole generiche che possono comunque essere usate, ad esempio la regola NullCheck , per eseguire un certo livello di verifica statica.