DoubleFetch-Regel (wdm)

Die DoubleFetch-Regel ist eine wichtige Sicherheitsregel, die überprüft, ob ein Treiber sicher auf Puffer zugreift, die über IRPs an den Benutzerspeicher übergeben werden. Die geeignete Möglichkeit zum sicheren Senden von Daten zwischen einem Treiber und einer Benutzermoduskomponente wird unter Verwenden weder gepufferter noch direkter E/A beschrieben.

Ein Treiber sollte gemäß den Richtlinien und bewährten Methoden unter Methoden für den Zugriff auf Datenpuffer auf Datenpuffer zugreifen.

Mit dieser Regel wird auf doppelte Abrufe aus Speicherzeigern im Benutzermodus überprüft. Doppelter Kernelmoduszugriff auf Arbeitsspeicher im Benutzermodus kann zu einem Sicherheitsproblem bei Racebedingungen führen. Beim Zugriff auf Benutzermodusdaten muss Kernelmoduscode lokal eine Kopie der Benutzermodusdaten erstellen und vermeiden, dass mehrmals auf die Benutzermodusdaten zugegriffen wird. Wenn dies nicht geschieht, führt dies zu einem Problem, das als "Doppelter Abruf" bezeichnet wird, bei dem sich die Daten nach dem ersten Zugriff ändern können.

Diese Regel ist ab Windows 10 WDK, Build 20236, verfügbar. Diese Regel ist nur für WDM - und generische Treibertypen verfügbar.

Treibermodell: WDM, Generic

So führen Sie einen Test durch

Zur Kompilierzeit:

  1. Führen Sie Static Driver Verifier aus , und geben Sie die Doublefetch-Regel an .

  2. Führen Sie die folgenden Schritte ( unter Verwenden der statischen Treiberüberprüfung zum Suchen von Fehlern in Windows-Treibern) aus, um eine Analyse Ihres Codes auszuführen:

Weitere Informationen finden Sie unter Verwenden der statischen Treiberüberprüfung, um Fehler in Treibern zu finden.