Proprietà del driver Verifier per i progetti di pacchetto driver
Driver Verifier è uno strumento di verifica in fase di esecuzione che aumenta l'efficacia dei test dei driver. È possibile abilitare e configurare Driver Verifier per l'esecuzione in tutti i computer di test quando si distribuisce il driver per il test.
È consigliabile configurare sempre una connessione di debug in modalità kernel con il computer di test quando si abilita Driver Verifier nel computer di test remoto. Per informazioni sulla configurazione di un computer di destinazione e sulla configurazione di un cavo di debug, vedere Introduzione con debug di Windows.
Impostazione delle proprietà del driver Verifier per i progetti di pacchetto driver
- Aprire le pagine delle proprietà per il pacchetto driver. Selezionare e tenere premuto (o fare clic con il pulsante destro del mouse) sul progetto del pacchetto driver in Esplora soluzioni e scegliere Proprietà.
- Nelle pagine delle proprietà per il pacchetto driver selezionare Proprietà di configurazione, selezionare Installazione driver e quindi selezionare Verifica driver.
- Selezionare l'opzione Abilita verifica driver . Quando questa opzione è selezionata, è possibile selezionare il driver o i driver da verificare nel computer di test ed è possibile selezionare le opzioni Driver Verifier da usare.
Configurazione e piattaforma del progetto
L'elenco di configurazioni e l'elenco delle piattaforme consentono di applicare impostazioni di distribuzione diverse per diverse combinazioni di configurazione e piattaforma del progetto. Ad esempio, è possibile distribuire un driver in un computer di test usando un set di opzioni di distribuzione per le compilazioni di debug e in un computer di test diverso usando le opzioni di distribuzione per le build di versione.
Abilitare driver Verifier
È possibile abilitare Driver Verifier nel computer di test per tutti i driver nel computer, solo per il progetto driver o per un elenco di driver specificati. Ad esempio, è possibile abilitare Driver Verifier per il set di driver nello stack per un determinato dispositivo.
Verificare i driver
Specifica il driver o i driver da verificare nel computer di test.
Tutti i driver
Specifica che Driver Verifier verifica tutti i driver installati nel computer di test remoto.
Output del progetto
Specifica che Driver Verifier verifica il progetto driver installato nel computer di test remoto. Questa è l'opzione predefinita.
Elenco driver
Specifica il driver o l'elenco di driver che Driver Verifier verifica nel computer di test remoto. Ad esempio, è possibile elencare tutti i driver associati a un determinato dispositivo. Specificare i driver in base al nome binario, ad esempio Driver.sys. Usare un punto e virgola per separare un elenco di driver. I valori con caratteri jolly, ad esempio n*.sys, non sono supportati.
Flag standard del driver Verifier
È possibile configurare le opzioni di Verifica driver seguenti nel computer di test.
Verifica della conformità DDI (Windows 8)
Quando questa opzione è attiva, Driver Verifier applica un set di regole DDI (Device Driver Interface) che controllano l'interazione corretta tra un driver e l'interfaccia kernel del sistema operativo.
-
Quando questa opzione è attiva, Driver Verifier monitora l'uso dei blocchi di rotazione, dei mutex e dei mutex veloci del driver. Ciò rileva se il codice del driver può causare un deadlock a un certo punto.
-
Quando questa opzione è attiva, Driver Verifier monitora l'uso delle routine DMA (Direct Memory Access) del driver. Ciò rileva un uso improprio di buffer, adattatori e registri di mapping DMA.
-
Quando questa opzione è attiva, Driver Verifier impone un utilizzo elevato della memoria sul driver invalidando il codice di paging. Se il driver tenta di accedere alla memoria di paging in IRQL errato o tenendo premuto un blocco di rotazione, Driver Verifier rileva questo comportamento.
-
Quando questa opzione è attiva, Driver Verifier alloca i pacchetti di richiesta di interruzione (IRP) del driver da un pool speciale e monitora la gestione delle operazioni di I/O del driver. Ciò rileva un uso illegale o incoerente di routine di I/O. Driver Verifier monitora anche le chiamate di diverse routine di I/O Manager ed esegue test di stress di IRP (Plug-and-Play), irP di alimentazione e IRP WMI.
-
Quando questa opzione è attiva, Driver Verifier cerca cause comuni di arresti anomali del driver, ad esempio la gestione errata della memoria liberata.
-
Quando questa opzione è attiva, Driver Verifier verifica se il driver ha liberato tutte le allocazioni di memoria quando viene scaricato. Ciò rivela perdite di memoria.
-
Quando questa opzione è attiva, Driver Verifier cerca errori comuni che possono causare vulnerabilità di sicurezza, ad esempio un riferimento agli indirizzi in modalità utente da routine in modalità kernel.
-
Quando questa opzione è attiva, Driver Verifier alloca la maggior parte delle richieste di memoria del driver da un pool speciale. Questo pool speciale viene monitorato per sovraccarichi di memoria, sottorun della memoria e memoria a cui si accede dopo che è stato liberato.
Impostazioni specifiche dello scenario di verifica driver
Simulazione di risorse ridotte
Quando questa opzione è attiva, Driver Verifier ha esito negativo in modo casuale nelle richieste di allocazione del pool e in altre richieste di risorse. Inserendo questi errori di allocazione nel sistema, Driver Verifier verifica la capacità del driver di gestire una situazione con risorse ridotte.
Forzare le richieste di I/O in sospeso
Quando questa opzione è attiva, Driver Verifier verifica la risposta del driver a STATUS_PENDING valori restituiti restituendo STATUS_PENDING per le chiamate casuali a IoCallDriver.
-
Quando questa opzione è attiva, Driver Verifier monitora l'uso di irP di un driver e crea un log di utilizzo di IRP.
Controllo MDL invariante per stack (Windows 8)
L'opzione Controllo MDL invariante per stack monitora il modo in cui il driver gestisce i buffer MDL invarianti nello stack di driver. Driver Verifier può rilevare modifiche non valide dei buffer MDL invarianti. Per usare questa opzione, la verifica di I/O deve essere abilitata in almeno un driver.
Controllo MDL invariante per driver (Windows 8)
L'opzione Controllo MDL invariante per driver monitora il modo in cui il driver gestisce i buffer MDL invarianti per ogni driver. Questa opzione rileva modifiche non valide dei buffer MDL invarianti. Per usare questa opzione, è necessario abilitare la verifica di I/O in almeno un driver.
Ritardo fuzzing di Power Framework (Windows 8)
Quando questa opzione è attiva, Driver Verifier randomizza le pianificazioni dei thread per evitare errori di concorrenza nel driver.
Inserimento di errori basati su stack (Windows 8)
L'opzione Stack Based Failure Injection inserisce errori di risorse nei driver in modalità kernel. Questa opzione usa un driver speciale, KmAutoFail.sys, insieme a Driver Verifier per penetrare i percorsi di gestione degli errori del driver.
Nota Non è possibile combinare l'inserimento degli errori in base allo stack con la simulazione di risorse ridotte.
Opzioni di Verifica driver che richiedono la verifica di I/O
Sono disponibili quattro opzioni che richiedono prima di tutto di abilitare la verifica di I/O. Se la verifica di I/O non è abilitata, queste opzioni non sono abilitate.
- Forza richieste di I/O in sospeso
- Registrazione IRP
- Controllo MDL invariante per stack
- Controllo MDL invariante per driver