Condividi tramite


Comandi di verifica driver statici (MSBuild)

È possibile eseguire Static Driver Verifier (SDV) in una finestra del prompt dei comandi di Visual Studio, tramite l'installazione di Windows Driver Kit (WDK) o eseguendo Enterprise Windows Driver Kit (EWDK). Passare alla directory in cui è archiviato il file di progetto del driver o il file di progetto della libreria. I parametri possono essere visualizzati in qualsiasi ordine nella riga di comando.

Importante

SDV non è più supportato e SDV non è disponibile nelle versioni WDK o EWDK di Windows 24H2. Non è disponibile in WDK più recente rispetto alla build 26017 e non è incluso in Windows 24H2 RTM WDK. SDV può comunque essere usato scaricando Windows 11 versione 22H2 EWDK (rilasciata il 24 ottobre 2023) con gli strumenti di compilazione di Visual Studio 17.1.5 da Scaricare Windows Driver Kit (WDK) . È consigliabile usare enterprise WDK per eseguire SDV. L'uso di versioni precedenti del WDK standard in combinazione con le versioni recenti di Visual Studio non è consigliato, in quanto ciò genererà probabilmente errori di analisi.
In futuro, CodeQL sarà lo strumento di analisi statico principale per i driver. CodeQL offre un linguaggio di query potente che considera il codice come database su cui eseguire query, semplificando la scrittura di query per comportamenti, modelli e altro ancora specifici. Per altre informazioni sull'uso di CodeQL, vedere CodeQL e il test del logo degli strumenti statici.

msbuild /t:sdv /p:Inputs="Parameters" ProjectFile /p:Configuration=configuration /p:Platform=platform

È necessario selezionare una configurazione release (ad esempio, /p:Configuration="Windows 7 Release"). Per l'elenco delle configurazioni di versione supportate, vedere Compilazione di un driver. La piattaforma può essere Win32 (per x86) o x64 (ad esempio, /p:Platform=Win32).

Nota

Assicurarsi di controllare il piano di risparmio energia del computer per assicurarsi che il computer non entri in stato di sospensione durante l'analisi.

Parametri

/scan

Analizza il codice sorgente del driver per individuare le dichiarazioni del tipo di ruolo della funzione. Per informazioni su come dichiarare le funzioni di callback e le routine dispatch fornite dal driver, vedere Using Function Role Type Declarations. Durante questa analisi, SDV tenta di rilevare i punti di ingresso del driver necessari per verificare il driver. Registra i risultati dell'analisi in Sdv-map.h, un file creato nella directory del progetto del driver.

Per altre informazioni, vedere Preparazione del codice sorgente.

/check:Rule | ,...

Avvia una verifica con le regole specificate. È possibile specificare più regole separando ogni regola con una virgola. Eseguire il comando /check: e specificare il file di progetto di Visual Studio del driver (*.vcxproj).

La regola è il nome di una regola o di un modello di nome regola che include caratteri jolly (*) per rappresentare uno o più caratteri. Se usato da solo, il carattere jolly (*) rappresenta tutte le regole.

/check:RuleList.sdv

Avvia una verifica con le regole nel file dell'elenco di regole specificato. È possibile elencare un solo file con questo parametro. Nel file di elenco regole ogni riga può essere il nome di una regola o può essere un carattere jolly (*), che rappresenta tutte le regole SDV. Eseguire il comando /check:RuleList.sdv e specificare il file di progetto di Visual Studio del driver (*.vcxproj).

RuleList.sdv è il percorso completo e il nome file di un file di elenco regole. Il file deve avere l'estensione sdv . A meno che il file non si trova nella directory locale, il percorso è obbligatorio. Se il percorso o il nome file include spazi, è necessario racchiudere RuleList.sdv tra virgolette.

Se si specifica l'opzione /check: senza specificare una regola, SDV viene eseguito con il set di regole predefinito per il modello di driver.

/lib

Elabora la libreria nella directory corrente. SDV chiama MSBuild.exe per compilare e compilare la libreria per l'uso esterno e genera i file necessari per includere la libreria nella verifica del driver.

Usare questo parametro prima di verificare i driver che richiedono la libreria. Eseguire il comando msbuild /t:sdv /p:Inputs="/lib" e specificare il file di progetto di Visual Studio (*.vcxproj) per la libreria.

Per altre informazioni sull'uso e sull'effetto del parametro /lib , vedere Elaborazione della libreria in Static Driver Verifier.

/vista

Apre il verificatore del driver statico. Eseguire i comandi /view e specificare il file di progetto di Visual Studio del driver (*.vcxproj).

I risultati sono disponibili non appena viene completata una verifica e rimangono disponibili fino a quando non si usa un comando /clean per eliminare i file SDV dalla directory del progetto del driver.

/pulito

Elimina i file SDV dalla directory. Poiché questi file vengono usati per generare la visualizzazione del report del driver statico, il comando /clean elimina anche il report della verifica.

Eseguire un comando /clean e specificare il file di progetto di Visual Studio (*.vcxproj) per il driver o la libreria. Il comando elimina i file SDV solo per il progetto specificato.

Eseguire un comando /clean per un progetto driver prima di ogni verifica.

Eseguire un comando /clean per una libreria quando i file di libreria non sono aggiornati, ad esempio quando il codice della libreria cambia.

Un comando /clean non rimuove il file Sdv-map.h, se il flag approvato è impostato su true nel file Sdv-map.h (Approved=true). SDV può quindi usare questo file per le verifiche future.

/?

Visualizza l'utilizzo per i comandi SDV. I comandi che usano questo parametro non devono essere eseguiti in una finestra dell'ambiente di compilazione.

Commenti

L'esecuzione di msbuild /t:/sdv p:/Inputs= /? senza parametri visualizza l'utilizzo per i comandi SDV.

Un comando /clean elimina i file usati da SDV per creare la visualizzazione del report del driver statico per una verifica. Dopo l'esecuzione di questo comando, la visualizzazione Del report del driver statico per la verifica non è più disponibile.

Esempi

Per eseguire SDV usando tutte le regole nei file del driver nella directory locale per il progetto mydriver:

msbuild /t:sdv /p:Inputs="/check:*" mydriver.VcxProj /p:Configuration="Windows 7 Release"/p:Platform=Win32

Per eseguire SDV usando la regola CancelSpinLock nei file del driver nella directory locale:

msbuild /t:sdv /p:Inputs="/check:CancelSpinLock" mydriver.VcxProj /p:Configuration="Windows 7 Release" /p:Platform=Win32

Per eseguire SDV usando la regola specificata nel file di elenco regole Rules1.sdv nella directory D:\SDV:

msbuild /t:sdv /p:Inputs="/check:D:\SDV\Rules1.sdv" mydriver.VcxProj /p:Configuration="Windows 7 Release" /p:Platform=Win32

Per eseguire di nuovo SDV, questa volta usando l'opzione /clean:

msbuild /t:sdv /p:Inputs="/clean" mydriver.VcxProj /p:Configuration="Windows 7 Release"/p:Platform=Win32

Per visualizzare Static Driver Verifier in modo che sia possibile visualizzare i risultati per la verifica più recente del driver nella directory locale:

msbuild /t:sdv /p:Inputs="/view" mydriver.VcxProj /p:Configuration="Windows 7 Release" /p:Platform=Win32

Uso di Static Driver Verifier (Verifica driver statico) per trovare i difetti nei driver di Windows