Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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.