Condividi tramite


Set di regole di utilizzo DDI (WDM)

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

In questa sezione

Argomento Descrizione

DebugBreakUsage

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

DoubleFetch

La regola DoubleFetch verifica la presenza di un doppio recupero dai puntatori alla memoria in modalità utente. I doppi accessi in modalità kernel alla memoria in modalità utente possono causare un problema di sicurezza di condizione di gara. Quando si accede ai dati in modalità utente, il codice in modalità kernel deve creare una copia dei dati in modalità utente in locale ed evitare di accedere più volte ai dati in modalità utente. In caso contrario, si verifica un tipo di problema noto come "doppio recupero", in cui i dati possono cambiare dopo 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.
  • In un driver è presente un parametro globale che può essere NULL e viene dereferenziato successivamente; c'è una verifica esplicita che suggerisce che il valore iniziale del puntatore potrebbe essere NULL.

Con le violazioni delle regole NullCheck, le istruzioni di codice più rilevanti vengono evidenziate nel riquadro dell'albero di traccia. Per altre informazioni sull'utilizzo dell'output del report, vedere Static Driver Verifier Report e Understanding the Trace Viewer.

SafeStrings

La regola SafeStrings specifica che il driver chiama solo le funzioni di manipolazione delle stringhe che proteggono il sistema da intrusioni involontarie o dannose. Queste funzioni 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. In alternativa, usare FsRtlFastLock.

Per selezionare il set di regole di utilizzo DDI

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

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

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

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

    Per altre informazioni, vedere Uso di Static Driver Verifier per individuare difetti nei driver e Comandi di Static Driver Verifier (MSBuild).