Driver Verifier
Driver Verifier monitora driver e driver grafici in modalità kernel di Windows per rilevare chiamate di funzione o azioni non valide che potrebbero danneggiare il sistema. Driver Verifier può sottoporre i driver di Windows a un'ampia gamma di stress e test per individuare comportamenti non corretti. È possibile configurare i test da eseguire, che consentono di mettere un driver attraverso carichi di stress elevati o tramite test più semplificati. È anche possibile eseguire Driver Verifier su più driver contemporaneamente o su un driver alla volta.
Attenzione
- L'esecuzione di Driver Verifier potrebbe causare l'arresto anomalo del computer.
- È consigliabile eseguire Solo Driver Verifier nei computer in uso per il test e il debug.
- È necessario trovarsi nel gruppo Amministratori nel computer per usare Driver Verifier.
Dove è possibile scaricare Driver Verifier?
Non è necessario scaricare Driver Verifier, perché è incluso nella maggior parte delle versioni di Windows in %WinDir%\system32\ come Verifier.exe. (Driver Verifier non è incluso in Windows 10 S, quindi ti consigliamo di testare il comportamento del driver in Windows 10. Driver Verifier non viene distribuito separatamente come pacchetto di download.
Per informazioni sulle modifiche in Driver Verifier per Windows 10 e versioni precedenti di Windows, vedi Driver Verifier: What's New.
Quando usare Driver Verifier
Eseguire Driver Verifier durante lo sviluppo e il test del driver. In particolare, usare Driver Verifier per gli scopi seguenti:
Per individuare i problemi all'inizio del ciclo di sviluppo, quando sono più facili e meno costosi da correggere.
Per la risoluzione dei problemi e il debug di errori di test e arresti anomali del computer.
Per monitorare il comportamento quando si distribuisce un driver per i test usando WDK, Visual Studio e i test di Windows Hardware Lab Kit (Windows HLK) o Windows Hardware Certification Kit (per Windows 8.1). Per altre informazioni sui driver di test, vedere Test di un driver.
Importante
Il programma di compatibilità hardware Windows richiede codeQL per i test STL (Static Tool Logo) nei sistemi operativi client e server. Continueremo a mantenere il supporto per SDV e CA su prodotti meno recenti. I partner sono invitati a esaminare i requisiti codeQL per il test del logo dello strumento statico. Per altre informazioni sull'uso di CodeQL, vedere CodeQL e il test del logo degli strumenti statici.
Come avviare Driver Verifier
È consigliabile eseguire Driver Verifier solo nei computer di test o nei computer di cui si sta testando e eseguendo il debug. Per ottenere il massimo vantaggio da Driver Verifier, è necessario usare un debugger del kernel e connettersi al computer di test. Per altre informazioni sugli strumenti di debug, vedere Strumenti di debug per Windows (WinDbg, KD, CDB, NTSD).
Avviare una finestra del prompt dei comandi selezionando Esegui come amministratore e digitare verifica per aprire Gestione verifica driver.
Selezionare Crea impostazioni standard (attività predefinita) e selezionare Avanti.
È anche possibile scegliere Crea impostazioni personalizzate da selezionare tra le impostazioni predefinite o selezionare singole opzioni. Per altre informazioni, vedere Opzioni del driver Verifier e classi di regole e Selezione delle opzioni di verifica driver.
In Selezionare i driver da verificare scegliere uno degli schemi di selezione descritti nella tabella seguente.
Opzione Uso consigliato Selezionare automaticamente i driver non firmati Utile per i test nei computer che eseguono versioni di Windows che non richiedono driver firmati.
Selezionare automaticamente i driver compilati per le versioni precedenti di Windows Utile per testare la compatibilità dei driver con le versioni più recenti di Windows.
Selezionare automaticamente tutti i driver installati nel computer Fornisce la copertura massima in termini di numero di driver testati in un sistema. Questa opzione è utile per gli scenari di test in cui un driver può interagire con altri dispositivi o driver in un sistema.
Questa opzione può anche esaurire le risorse disponibili per il pool speciale e il rilevamento delle risorse. Anche il test di tutti i driver può influire negativamente sulle prestazioni del sistema.
Selezionare i nomi dei driver da un elenco Nella maggior parte dei casi, è necessario specificare i driver da testare.
La selezione di tutti i driver in uno stack di dispositivi consente all'opzione Verifica I/O avanzata di tenere traccia degli oggetti e controllare la conformità perché viene passato un pacchetto di richiesta di I/O tra ognuno dei driver nello stack, che consente di fornire un livello di dettaglio maggiore quando viene rilevato un errore.
Selezionare un singolo driver se si esegue uno scenario di test che misura le metriche delle prestazioni del sistema o del driver oppure se si vuole allocare il maggior numero di risorse disponibili per rilevare il danneggiamento della memoria o i problemi di rilevamento delle risorse, ad esempio deadlock o mutex. Le opzioni Di verifica speciale pool e I/O sono più efficaci quando vengono usate su un driver alla volta.
Se si sceglie Seleziona nomi driver da un elenco, selezionare Avanti e quindi selezionare uno o più driver specifici.
Selezionare Fine e quindi riavviare il computer.
Nota
Quando si usa il verificatore di driver con Windows versioni da 20150 a 25126, se è stato selezionato ntoskrnl , è possibile che venga visualizzato un errore di stato non valido.
Per evitare questo problema, deselezionare ntoskrnl o eseguire l'aggiornamento a una versione di Windows dopo la build 25126.
Eseguire il verificatore del driver al prompt dei comandi
È anche possibile eseguire Driver Verifier in una finestra del prompt dei comandi senza avviare Gestione verifica driver. Ad esempio, per eseguire Driver Verifier con le impostazioni standard in un driver denominato myDriver.sys, usare il comando seguente:
verifier /standard /driver myDriver.sys
Per altre informazioni sulle opzioni della riga di comando, vedere Driver Verifier Command Syntax.
Come controllare Driver Verifier
È possibile usare Gestione verifica driver o una riga di comando per controllare Driver Verifier. Per avviare Gestione verifica driver, vedere Come avviare Driver Verifier, in precedenza in questo argomento.
Per ognuna delle azioni seguenti, è possibile usare Gestione verifica driver o immettere una riga di comando.
Per arrestare o reimpostare Driver Verifier
In Gestione verifica driver selezionare Elimina impostazioni esistenti e quindi selezionare Fine.
or
Immettere il comando seguente in un prompt dei comandi:
verifier /reset
Riavviare il computer.
Per visualizzare le statistiche del driver verifier
In Gestione verifica driver selezionare Visualizza informazioni sui driver attualmente verificati e quindi selezionare Avanti. Se si continua a selezionare Avanti, vengono visualizzate informazioni aggiuntive.
or
Immettere il comando seguente in un prompt dei comandi:
verifier /query
Per visualizzare le impostazioni del driver Verifier
In Gestione verifica driver selezionare Visualizza impostazioni esistenti e quindi selezionare Avanti.
or
Immettere il comando seguente in un prompt dei comandi:
verifier /querysettings
Come eseguire il debug delle violazioni del driver Verifier
Per ottenere il massimo vantaggio da Driver Verifier, è necessario usare un debugger del kernel e connetterlo al computer di test. Per una panoramica degli strumenti di debug per Windows, vedere Strumenti di debug per Windows (WinDbg, KD, CDB, NTSD).
Se Driver Verifier rileva una violazione, genera un controllo di bug per arrestare il computer. Si tratta di fornire le informazioni più dettagliate possibili per il debug del problema. Quando si dispone di un debugger del kernel connesso a un computer di test che esegue Driver Verifier e Driver Verifier rileva una violazione, Windows si interrompe nel debugger e visualizza una breve descrizione dell'errore.
Tutte le violazioni rilevate da Driver Verifier generano controlli di bug. Si tratta in genere di un controllo bug 0xC4. Per altre informazioni, vedere 0xC4 di verifica dei bug di debug: DRIVER_VERIFIER_DETECTED_VIOLATION e controllo dei bug 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION.
Altri codici di controllo dei bug comuni includono quanto segue:
- Controllo bug 0xC1: SPECIAL_POOL_DETECTED_MEMORY_CORRUPTION
- Controllo bug 0xC6: DRIVER_CAUGHT_MODIFYING_FR edizione Enterprise D_POOL
- Controllo bug 0xC9: DRIVER_VERIFIER_IOMANAGER_VIOLATION
- Controllo bug 0xD6: DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION
- Controllo bug 0xE6: DRIVER_VERIFIER_DMA_VIOLATION
Per altre informazioni, vedere Gestione di un controllo dei bug quando è abilitata la verifica del driver.
Quando si avvia una nuova sessione di debug, usare il comando di estensione del debugger ! analyze. In modalità kernel, il comando !analyze visualizza informazioni sul controllo dei bug più recente. Per visualizzare informazioni aggiuntive, per identificare il driver di errore, aggiungere l'opzione -v al comando al prompt kd>:
kd> !analyze -v
Oltre a !analyze, è possibile immettere le estensioni del debugger seguenti al prompt kd> per visualizzare informazioni specifiche di Driver Verifier:
!verifier dump acquisiti statistiche del driver verifier. Usare !verifier -? per visualizzare tutte le opzioni disponibili.
kd> !verifier
!deadlock visualizza informazioni relative a blocchi o oggetti rilevati dalla funzionalità di rilevamento dei deadlock di Driver Verifier. Usare !deadlock -? per visualizzare tutte le opzioni disponibili.
kd> !deadlock
!iovirp [indirizzo] visualizza le informazioni relative a un IRP rilevato da I/O Verifier. Ad esempio:
kd> !iovirp 947cef68
Cercare la regola di controllo della conformità DDI violata. RuleID è sempre il primo argomento del controllo dei bug. Tutti gli ID delle regole del controllo di conformità DDI si trovano nel modulo 0x200nn.