Condividi tramite


Verifica di I/O avanzata

Questa funzionalità è disponibile solo in Windows XP e versioni successive del sistema operativo Windows.

In Windows 7 e versioni successive del sistema operativo Windows, la verifica di I/O avanzata viene attivata automaticamente quando si seleziona Verifica I/O. Non è disponibile o necessario selezionarlo come opzione separata.

Quando viene attivata la verifica di I/O avanzata, Driver Verifier monitora le chiamate di diverse routine di I/O Manager ed esegue test di stress di PnP IRP, power IRP e WMI IRP.

In Windows Vista e Windows XP la verifica di I/O avanzata viene attivata indipendentemente dalla verifica di I/O, ma selezionando entrambe le opzioni è disponibile un test più completo dei metodi di interfaccia di I/O in un driver.

Funzionalità della verifica di I/O avanzata

Driver Verifier aggiunge i controlli seguenti quando si attiva la verifica di I/O avanzata.

  • Monitora tutti i runtime di integrazione per assicurarsi che il driver restituisca STATUS_PENDING se e solo se ha chiamato IoMarkIrpPending.

  • Monitora l'uso di IoDeleteDevice per verificare che il driver non elimini più lo stesso dispositivo più che una volta e per rilevare lo scollegamento e l'eliminazione inappropriati degli oggetti dispositivo.

  • Verifica che il driver riapplica correttamente tutte le chiamate IoSkipCurrentIrpStackLocation.

Nuovi stress e test includono:

  • Scrivendo l'ordine dei dispositivi enumerati, per assicurarsi che i driver Plug and Play (PnP) non facciano ipotesi sull'ordine di avvio del dispositivo.

  • Regolando lo stato di PnP e Power IRP al termine, per intercettare i driver che restituiscono uno stato non corretto dalle routine di invio.

  • Invio di falsi runtime di integrazione di Power per testare i bug del percorso del codice del driver.

  • Invio di IRP WMI falsi per verificare la disponibilità di bug del percorso del codice driver.

  • Inserimento di un filtro falso in ogni stack WDM.

Visualizzazione di errori di verifica di I/O avanzati

Gli errori del driver rilevati dalla verifica di I/O avanzata vengono visualizzati nello stesso modo di quelli rilevati dalla verifica di I/O di livello 2.

Nella schermata blu questi errori vengono annotati dal messaggio ERRORE DI VERIFICA SISTEMA I/O e dalla stringa WDM DRIVER ERROR XXX, dove XXX è un codice di errore di I/O.

In un file di dump di arresto anomalo del sistema, questi errori vengono segnalati dal messaggio BugCheck 0xC9 (DRIVER_VERIFIER_IOMANAGER_VIOLATION) insieme al codice di errore di I/O. In questo caso, il codice di errore di I/O viene visualizzato come primo parametro del controllo dei bug 0xC9.

In un debugger del kernel (KD o WinDbg), questi errori vengono annotati dal messaggio WDM DRIVER ERROR e da una stringa di testo descrittiva. Quando il debugger del kernel è attivo, è possibile ignorare gli errori di livello 2 e riprendere l'operazione di sistema. Questo non è possibile con altri controlli di bug.

La schermata blu, il file di dump di arresto anomalo del sistema e il debugger del kernel visualizzano anche informazioni aggiuntive. Per una descrizione completa di tutti i messaggi di errore del livello di verifica I/O 2, vedere Controllo dei bug 0xC9.

Attivazione di questa opzione

È possibile attivare la funzionalità di verifica di I/O avanzata per uno o più driver usando Gestione verifica driver o la riga di comando Verifier.exe. Per informazioni dettagliate, vedere Selezione delle opzioni di verifica driver.

Nota In Windows 7 e versioni successive del sistema operativo Windows, la verifica di I/O avanzata viene attivata automaticamente quando si seleziona Verifica I/O. Non è disponibile o necessario selezionarlo come opzione separata.

  • Dalla riga di comando

    Nella riga di comando, l'opzione Verifica di I/O avanzata è rappresentata da Bit 6 (0x40).The Enhanced I/O Verification option is represented by Bit 6 (0x40). Per attivare la verifica di I/O avanzata, usare un valore flag di 0x40 o aggiungere 0x40 al valore del flag. Ad esempio:

    verifier /flags 0x40 /driver MyDriver.sys
    

    La funzionalità sarà attiva dopo l'avvio successivo.

    In Windows Vista e versioni successive di Windows è anche possibile attivare e disattivare la verifica di I/O avanzata senza riavviare il computer aggiungendo il parametro /volatile al comando. Ad esempio:

    verifier /volatile /flags 0x40 /adddriver MyDriver.sys
    

    Questa impostazione è effettiva immediatamente, ma viene persa quando si arresta o si riavvia il computer. Per informazioni dettagliate, vedere Uso delle impostazioni volatili.

  • Uso di Gestione verifica driver

    1. Avviare Gestione verifica driver. Digitare Verifier in una finestra del prompt dei comandi.
    2. Selezionare Crea impostazioni personalizzate (per sviluppatori di codice) e quindi fare clic su Avanti.
    3. Selezionare Seleziona singole impostazioni da un elenco completo.
    4. Selezionare (controllo) Verifica di I/O avanzata.

    La funzionalità di verifica DMA è inclusa anche nelle impostazioni standard. Per usare questa funzionalità, in Gestione driver verifier fare clic su Crea impostazioni standard.