Share via


Ritardo sincronizzazione kernel fuzzing

Nota

Questo controllo è deprecato a partire da Windows 10 Build 19042 e versioni successive

L'opzione Ritardo sincronizzazione kernel consente di individuare in modo casuale le pianificazioni dei thread per rilevare i bug di concorrenza nei driver.

Attenzione Questa opzione non è destinata all'uso quando si verificano tutti i driver (o una raccolta di grandi dimensioni) in un computer. Questa opzione deve essere usata solo quando si eseguono test mirati di singoli driver o driver di filtro associati. L'uso di questa opzione su un numero elevato di driver contemporaneamente potrebbe causare risultati imprevedibili e potrebbe forzare arresti anomali nei componenti non correlati ai driver che si stanno testando.

Nota Questa opzione è disponibile a partire da Windows 8.1.

Quando l'opzione è selezionata, Driver Verifier inserisce ritardi casuali in vari punti nei thread. Analogamente all'opzione Power Framework Delay Fuzzing , l'opzione Ritardo sincronizzazione kernel usa un algoritmo che consente di migliorare le probabilità di trovare errori nei driver. Il ritardo di sincronizzazione del kernel migliora il test di stress tradizionale, in cui il programma di test viene eseguito per giorni o addirittura settimane nella speranza di rilevare problemi in che possono verificarsi nell'esecuzione simultanea.

Attivazione di questa opzione

È possibile attivare la funzionalità ritardo sincronizzazione kernel 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. È necessario riavviare il computer per attivare o disattivare l'opzione Power Framework Delay Fuzzing.

Nota L'opzione Ritardo sincronizzazione kernel aumenta la probabilità che le race condition vengano visualizzate in fase di esecuzione inserendo ritardi casuali in varie chiamate di funzione API kernel. Affinché questi ritardi siano più efficaci, è possibile abilitare questa opzione con altre opzioni di Driver Verifier. A causa dei ritardi che possono essere introdotti, è possibile prevedere che il computer abbia una risposta più lenta.

  • Nella riga di comando

    Nella riga di comando il ritardo di sincronizzazione del kernel è rappresentato dal verifier /flags 0x00800000 (Bit 23). Per attivare Power Framework Delay Fuzzing, usare un valore flag di 0x00800000 o aggiungere 0x00800000 al valore del flag. Ad esempio:

    verifier /flags 0x00800000 /driver MyDriver.sys
    

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

  • 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 (controllare) Ritardo sincronizzazione kernel.
    5. Riavviare il computer.

Perché la sincronizzazione del kernel ritarda la fuzzing?

La maggior parte delle routine del driver è reentrant e simultanea. I bug correlati alla concorrenza sono notoriamente difficili da trovare. I bug possono includere deadlock e race condition, causati da problemi di sincronizzazione e tempi non corretti tra thread. Il test di stress è la tecnica di test tradizionale per trovare questi bug, ma può essere lento e costoso e i risultati non sono sempre riproducibili. L'opzione Ritardo sincronizzazione kernel aumenta la probabilità che le race condition vengano visualizzate in fase di esecuzione inserendo ritardi casuali in varie chiamate di funzione API kernel. Ad esempio, se una race condition comporta un driver che accede a IRP dopo l'annullamento, l'opzione Ritardo sincronizzazione kernel aumenta le probabilità di questa race condition in modo che Driver Verifier rileverà l'errore durante il test. L'opzione Ritardo sincronizzazione kernel migliora la potenza e l'efficacia di Driver Verifier.