Nota
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare ad accedere o a cambiare directory.
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare a cambiare directory.
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 i 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 al debug di Windows.
Impostazione delle proprietà del driver Verifier per i progetti di pacchetto driver
- Apri le pagine delle proprietà del pacchetto dei 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 la piattaforma 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 Verificatore driver
È possibile configurare le opzioni seguenti di Driver Verifier nel computer di test.
Controllo 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. In questo modo viene rilevato se il codice del driver può causare un deadlock a un certo punto.
-
Quando questa opzione è attiva, Driver Verifier monitora l'uso delle routine di accesso diretto alla memoria (DMA). In questo modo viene rilevato un uso improprio di buffer, adattatori e registri mappa DMA.
-
Quando questa opzione è attiva, Driver Verifier applica un'estrema pressione di memoria al driver invalidando il codice pageable. Se il driver tenta di accedere alla memoria impaginata in irQL non corretta o mentre tiene premuto un blocco di selezione, 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 di I/O del driver. Ciò rileva l'uso illegale o incoerente delle routine di I/O. Driver Verifier monitora anche le chiamate di diverse routine di I/O Manager ed esegue il test di stress degli IRP Plug-and-Play (PnP), degli IRP di alimentazione e degli 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 sovrascrittura della memoria, sottoutilizzo della memoria e la memoria a cui si accede dopo che è stata rilasciata.
Impostazioni specifiche dello scenario di verifica driver
-
Quando questa opzione è attiva, Driver Verifier provoca in modo casuale il fallimento delle richieste di allocazione del pool e di altre richieste di risorse. Inserendo questi errori di allocazione nel sistema, Driver Verifier verifica la capacità del driver di far fronte a una situazione con risorse basse.
Forzare le richieste di I/O in sospeso
Quando questa opzione è attiva, Driver Verifier verifica la risposta del driver ai valori restituiti STATUS_PENDING restituendo STATUS_PENDING per le chiamate casuali a IoCallDriver.
-
Quando questa opzione è attiva, Driver Verifier monitora l'utilizzo delle IRP di un driver e crea un log di utilizzo delle IRP.
Verifica 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.
Verifica invariante di MDL del 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 eliminare gli errori di concorrenza nel driver.
Inserimento di errori basati su stack (Windows 8)
L'opzione Inserimento errori basati su stack inietta guasti alle risorse nei driver in modalità kernel. Questa opzione usa un driver speciale, KmAutoFail.sys, insieme a Driver Verifier per penetrare nei percorsi di gestione degli errori del driver.
Nota Non è possibile combinare l'inserimento degli errori in base allo stack con la simulazione di risorse basse.
Opzioni di Verifica Driver che richiedono Verifica 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.
- Forzare le richieste di I/O in sospeso
- Registrazione IRP
- Controllo MDL invariante per lo stack
- Controllo invariante MDL per il driver