Condividi tramite


Regola DoubleFetch (wdm)

La regola DoubleFetch è una regola di sicurezza importante che verifica che un driver acceda in modo sicuro ai buffer passati allo spazio utente tramite i provider di integrazione. Il modo appropriato per inviare in modo sicuro i dati tra un driver e un componente in modalità utente è descritto in Uso di I/O non memorizzati nel buffer né diretto.

Un driver deve accedere ai buffer dei dati seguendo le linee guida e le procedure consigliate descritte in Metodi per l'accesso ai buffer dei dati.

Questa regola verifica la presenza di un doppio recupero dai puntatori alla memoria in modalità utente. Gli accessi in modalità doppio kernel della memoria in modalità utente possono causare un problema di sicurezza a race condition. 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.

Questa regola è disponibile a partire da Windows 10 WDK, build 20236. Questa regola è disponibile solo per i tipi di driver generici e WDM.

Modello di driver: WDM, Generic

Come eseguire il test

In fase di compilazione:

  1. Eseguire Static Driver Verifier e specificare la regola doublefetch .

  2. Per eseguire un'analisi del codice, seguire questa procedura (disponibile in Using Static Driver Verifier to Find Defects in Windows Drivers) (Uso di Static Driver Verifier to Find Defects in Windows Drivers) (Uso di Static Driver Verifier to Find Defects in Windows Drivers) per eseguire un'analisi del codice:

Per altre informazioni, vedere Using Static Driver Verifier to Find Defects in Drivers.For more information, see Using Static Driver Verifier to Find Defects in Drivers.