Condividi tramite


Set di regole di utilizzo DDI (WDM)

Usare queste regole per verificare che il driver usi correttamente le DDI WDM.

Contenuto della sezione

Argomento Descrizione

DebugBreakUsage

La regola DebugBreakUsage specifica che il driver non deve chiamare DbgBreakPoint o DbgBreakPointWithStatus. Questa regola si applica solo quando si sta creando una versione non di debug del driver.

DoubleFetch

La regola DoubleFetch verifica la doppia recupero dai puntatori alla memoria in modalità utente. Gli accessi in modalità kernel doppia della memoria in modalità utente possono causare un problema di sicurezza della condizione di gara. Quando si accede ai dati in modalità utente, il codice in modalità kernel deve eseguire una copia dei dati in modalità utente in locale ed evitare di accedere ai dati in modalità utente più volte. La mancata operazione comporta un tipo di problema noto come "doppio recupero", in cui i dati possono cambiare dopo che è stato prima eseguito l'accesso.

NullCheck

La regola NullCheck verifica che un valore NULL all'interno del codice driver non venga dereferenziato più avanti nel driver. Questa regola segnala un difetto se una di queste condizioni è vera:

  • È presente un'assegnazione di NULL che viene dereferenziata in un secondo momento.
  • È presente un parametro globale/parametro per una procedura in un driver che può essere NULL che viene dereferenziato in un secondo momento ed è presente un controllo esplicito nel driver che suggerisce che il valore iniziale del puntatore può essere NULL.

Con le violazioni delle regole NullCheck, le istruzioni di codice più rilevanti vengono evidenziate nel riquadro albero di traccia. Per altre informazioni sull'uso dell'output del report, vedere Report di verifica driver statici e Informazioni sul visualizzatore di traccia.

SafeStrings

La regola SafeStrings specifica che il driver chiama solo le funzioni di manipolazione delle stringhe che proteggono il sistema da intrusioni non intenzionali o dannose. Queste funzioni di stringa sicure per i driver sono definite in Ntstrsafe.h.

ObsoleteDDIs

La regola ObsoleteDDIs specifica che i driver non devono chiamare FsRtlPrivateLock. questa funzione è obsoleta. Usare invece FsRtlFastLock .

Per selezionare il set di regole di utilizzo DDI

  1. Selezionare il progetto driver (con estensione vcxProj) in Microsoft Visual Studio. Dal menu Driver fare clic su Avvia verifica driver statico....

  2. Fare clic sulla scheda Regole . In Set di regole selezionare DDIUsage.

    Per selezionare il set di regole predefinite da una finestra del prompt dei comandi per sviluppatori di Visual Studio, specificare DDIUsage.sdv con l'opzione /check . Ad esempio:

    msbuild /t:sdv /p:Inputs="/check:DDIUsage.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
    

    Per altre informazioni, vedere Uso del verificatore driver statico per trovare i difetti nei comandi driver e verifica driver statici (MSBuild).