Einführung in statische Treiberüberprüfung

Static Driver Verifier (SDV) ist ein statisches Überprüfungstool, das zur Kompilierungszeit ausgeführt wird. Er untersucht Pfade im Treibercode, indem der Quellcode symbolisch ausgeführt wird, wodurch möglichst wenige Annahmen über den Zustand des Betriebssystems und den Anfangszustand des Treibers getroffen werden. Daher kann SDV Code in Pfaden ausführen, die bei herkömmlichen Tests verpasst werden.

SDV enthält eine Reihe von Regeln, die eine ordnungsgemäße Interaktion zwischen einem Treiber und dem Betriebssystemkernkern definieren. Während der Überprüfung prüft SDV alle anwendbaren Verzweigungen des Treibercodes und den von ihm verwendeten Bibliothekscode und versucht, zu beweisen, dass der Treiber gegen die Regeln verstößt. Wenn SDV einen Verstoß nicht nachweisen kann, meldet er, dass der Fahrer die Regeln erfüllt und die Überprüfung übergibt.

Dieser Abschnitt umfasst:

Grundlegendes zur Überprüfung statischer Treiber

Konzepte der statischen Treiberüberprüfung

Unterstützte Treiber

Einschränkungen für die Überprüfung statischer Treiber

Wichtig

SDV wird nicht mehr unterstützt, und SDV ist in Windows 24H2 WDK- oder EWDK-Versionen nicht verfügbar. Sie ist in WDKs neuer als Build 26017 nicht verfügbar und nicht im Windows 24H2 RTM WDK enthalten. SDV kann weiterhin verwendet werden, indem Sie das Windows 11, Version 22H2 EWDK (veröffentlicht am 24. Oktober 2023) mit Visual Studio-Buildtools 17.1.5 aus dem Windows Driver Kit (WDK) herunterladen. Es wird nur die Verwendung von Enterprise WDK zum Ausführen von SDV empfohlen. Die Verwendung älterer Versionen des Standard-WDK in Verbindung mit den letzten Versionen von Visual Studio wird nicht empfohlen, da dies wahrscheinlich zu Analysefehlern führt.
In Zukunft wird CodeQL das primäre statische Analysetool für Treiber sein. CodeQL stellt eine leistungsstarke Abfragesprache bereit, die Code als abgefragte Datenbank behandelt, sodass Abfragen für bestimmte Verhaltensweisen, Muster und vieles mehr einfach geschrieben werden können. Weitere Informationen zur Verwendung von CodeQL finden Sie unter CodeQL und dem Logotest für statische Tools.