Condividi tramite


Verifica driver statico

Static Driver Verifier (noto anche come "StaticDV" o "SDV") è uno strumento di verifica statico che analizza sistematicamente il codice sorgente dei driver in modalità kernel di Windows. SDV è uno strumento in fase di compilazione in grado di individuare difetti e problemi di progettazione in un driver. In base a un set di regole di interfaccia e a un modello del sistema operativo, SDV determina se il driver interagisce correttamente con il kernel del sistema operativo Windows.

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.

Installazione del verificatore di driver statici

Static Driver Verifier è disponibile come parte di Windows Driver Kit (WDK) sia nell'esperienza WDK completa che in Enterprise WDK autonoma. Per l'esecuzione di SDV, sono necessari anche i pacchetti ridistribuibili di Visual C++ per Visual Studio. Vedere la documentazione seguente:

Per le versioni di SDV disponibili in WDK per Windows 10 versione 1809 o precedenti, i pacchetti ridistribuibili di Visual C++ per Visual Studio 2012 devono essere installati anziché i pacchetti 2017.

Integrazione con Visual Studio

Static Driver Verifier è integrato in Visual Studio. È possibile eseguire l'analisi statica nel progetto driver di Visual Studio. È possibile avviare, configurare e controllare Static Driver Verifier dal menu Driver in Visual Studio.

Documentazione di Static Driver Verifier

  • Problemi noti del driver statico: elenca i problemi noti più recenti per il driver statico
  • Uso di Static Driver Verifier per trovare i difetti nei driver: indica cosa è necessario iniziare ad analizzare il codice del driver nell'ambiente Visual Studio.
  • Comandi di verifica driver statici (MSBuild): elenca i comandi di MSBuild da usare per eseguire SDV in una finestra del prompt dei comandi di Visual Studio.
  • Introduzione a Static Driver Verifier: offre una panoramica dello strumento di analisi statica.
  • Uso di Static Driver Verifier: fornisce i dettagli sull'uso e sulla configurazione dello strumento di analisi statica.
  • Report verifica driver statico: descrive il visualizzatore che visualizza la traccia dettagliata dell'analisi statica del codice.
  • Regole di verifica del driver statico: le regole definiscono i requisiti per l'interazione corretta tra un modello di driver e l'interfaccia kernel del sistema operativo.
  • Riferimento al verificatore driver statico: fornisce informazioni di riferimento sui tipi di ruolo della funzione, i file di configurazione SDV, i messaggi di errore e di avviso.

Ricerca di bug nel codice del driver di Windows

Microsoft usa SDV per testare i driver in modalità kernel inclusi nel sistema operativo Microsoft Windows e per testare i driver di esempio in WDK. Usando le regole di conformità DDI per modelli driver specifici, SDV può verificare il comportamento corretto del driver. Ad esempio, SDV può verificare che il driver:

  • Chiama le funzioni nel runtime di integrazione corretto
  • Acquisisce e rilascia blocchi nella sequenza corretta
  • Usa correttamente le funzioni che gestiscono i pacchetti di richiesta di I/O (IRP)

SDV esamina tutti i possibili percorsi tramite il codice del driver. È progettato per trovare errori gravi in percorsi oscuri che potrebbero non essere rilevati anche in test approfonditi.

Risorse aggiuntive

Per informazioni specifiche sui driver che sdV possono verificare, vedere Driver supportati

Per altre informazioni e suggerimenti sull'uso di Static Driver Verifier, vedere quanto segue: