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.
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.
Nota Questa opzione è disponibile a partire da Windows 8.
L'opzione di controllo MDL invariante per lo stack garantisce che i driver seguano le regole per i buffer MDL invariabili solo nel punto in cui la richiesta lascia lo stack di driver.
La prima volta che viene visualizzato un IRP con MDL invariante nella routine IoCallDriver , viene calcolata una firma univoca dal contenuto del buffer MDL invariante e archiviata in un database interno. Durante il completamento dell'IRP nella routine IoCompleteRequest , se l'IRP contiene ancora un MDL invariante per cui è stata registrata la firma, Driver Verifier verifica che il buffer non sia stato modificato.
Un buffer invariante, per la richiesta di scrittura, non può essere modificato per tutta la durata dell'IRP. Per una richiesta di lettura, non è possibile modificare un buffer invariante nel percorso di invio, quindi il confronto della firma del buffer viene eseguito all'ultima chiamata a IoCallDriver.
L'opzione di verifica dell'invarianza MDL per l'intero stack controlla la costanza del buffer MDL lungo tutto lo stack di driver, indipendentemente da ciò che accade al buffer durante il passaggio attraverso i singoli driver nello stack. Questa opzione è globale e non può essere applicata in modo selettivo per ogni driver. L'opzione Controllo MDL invariante per stack può rilevare solo la violazione, senza essere in grado di individuare il driver che ha violato l'invarianza del buffer. Per individuare il driver difettoso, usare l'opzione Controllo MDL invariante per driver , che esegue la convalida dell'invarianza del contenuto del buffer in ogni chiamata a IoCallDriver e IoCompleteRequest DDIs.
Attivazione di questa opzione
È possibile attivare la funzionalità di Controllo MDL invariato per stack per uno o più driver utilizzando la Gestione Verificatore Driver o la riga di comando Verifier.exe. È necessario riavviare il computer per attivare o disattivare l'opzione Controllo MDL invariante per stack. Per altre informazioni, vedere Selezione delle opzioni del Driver Verifier.
Per attivare l'opzione Controllo MDL invariante per stack, è necessario attivare anche la verifica di I/O.
Alla riga di comando
Nella riga di comando, il controllo MDL invariante per stack è rappresentato da 0x00002000 (bit 13). Per attivare il controllo MDL invariante per Stack, usare un valore flag di 0x00002010 o aggiungere 0x00002010 al valore del flag. Questo valore attiva la verifica di I/O (0x10) e il controllo MDL invariante per stack (0x00002000). Per esempio:
verifier /flags 0x00002010 /driver MyDriver.sysLa funzionalità sarà attiva dopo l'avvio successivo.
Uso del Driver Verifier Manager
- Avviare il Manager verifica driver. Digitare Verifier in una finestra del Prompt dei Comandi.
- Selezionare Crea impostazioni personalizzate (per sviluppatori di codice) e quindi fare clic su Avanti.
- Selezionare Selezionare le singole impostazioni da un elenco completo.
- Selezionare (selezione) Verifica di I/O e Controllo MDL invariante per lo Stack.
- Riavviare il computer.