Statische Treiberüberprüfung
Static Driver Verifier (auch als "StaticDV" oder "SDV" bezeichnet) ist ein statisches Überprüfungstool, das den Quellcode von Windows-Kernelmodustreibern systematisch analysiert. SDV ist ein Kompilierungszeittool, das Fehler und Entwurfsprobleme in einem Treiber erkennen kann. Basierend auf einer Reihe von Schnittstellenregeln und einem Modell des Betriebssystems bestimmt SDV, ob der Treiber ordnungsgemäß mit dem Windows-Betriebssystem-Kernel interagiert.
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.
Installieren der Überprüfung statischer Treiber
Static Driver Verifier ist als Teil des Windows Driver Kit (WDK) sowohl in der vollständigen WDK-Erfahrung als auch im eigenständigen Enterprise WDK verfügbar. Darüber hinaus sind die Redistributable Packages für Visual Studio erforderlich, damit SDV ausgeführt werden kann. Siehe Folgendes:
- Neuverteilung von Visual Studio 2019
- Visual C++ Redistributable Packages for Visual Studio 2017
- Visual C++ Redistributable Packages für Visual Studio 2013
Für Versionen von SDV, die im WDK für Windows 10, Version 1809 oder früher verfügbar sind, sollten die Redistributable Packages für Visual Studio 2012 anstelle der 2017-Pakete installiert werden.
Integration von Visual Studio
Static Driver Verifier ist in Visual Studio integriert. Sie können statische Analysen für Ihr Visual Studio-Treiberprojekt ausführen. Sie können statische Treiberüberprüfung über das Menü "Treiber " in Visual Studio starten, konfigurieren und steuern.
Dokumentation zur Überprüfung statischer Treiber
- Bekannte Probleme mit statischer Treiberüberprüfung: Listet die neuesten bekannten Probleme für die Überprüfung statischer Treiber auf.
- Verwenden der Statischen Treiberüberprüfung zum Auffinden von Fehlern in Treibern: Teilt Ihnen mit, was Sie benötigen, um den Treibercode in der Visual Studio-Umgebung zu analysieren.
- Statische Treiberüberprüfungsbefehle (MSBuild): Listet die MSBuild-Befehle auf, die zum Ausführen von SDV in einem Visual Studio-Eingabeaufforderungsfenster verwendet werden sollen.
- Einführung in statische Treiberüberprüfung: Bietet eine Übersicht über das statische Analysetool.
- Verwenden von Static Driver Verifier: Enthält die Details zur Verwendung und Konfiguration des statischen Analysetools.
- Bericht "Static Driver Verifier": Beschreibt den Viewer, der die detaillierte Ablaufverfolgung der statischen Codeanalyse anzeigt.
- Regeln für die Überprüfung statischer Treiber: Die Regeln definieren die Anforderungen für die ordnungsgemäße Interaktion zwischen einem Treibermodell und der Kernelschnittstelle des Betriebssystems.
- Referenz zur Überprüfung statischer Treiber: Enthält Referenzinformationen zu den Funktionsrollentypen, SDV-Konfigurationsdateien, Fehler- und Warnmeldungen.
Suchen von Fehlern im Windows-Treibercode
Microsoft verwendet SDV, um die Kernelmodustreiber zu testen, die im Microsoft Windows-Betriebssystem enthalten sind, und um die Beispieltreiber im WDK zu testen. Mithilfe der DDI-Complianceregeln für bestimmte Treibermodelle kann SDV das richtige Treiberverhalten überprüfen. Beispielsweise kann SDV überprüfen, ob der Treiber:
- Ruft Funktionen am richtigen IRQL auf.
- Erwerben und Loslassen von Sperren in der richtigen Reihenfolge
- Verwendet ordnungsgemäß Funktionen, die E/A-Anforderungspakete (IRP) verarbeiten
SDV untersucht alle möglichen Pfade über den Treibercode. Es wurde entwickelt, um schwerwiegende Fehler in verdeckten Pfaden zu finden, die auch bei gründlichen Tests unwahrscheinlich sind.
Zusätzliche Ressourcen
Spezifische Informationen zu den Treibern, die SDV überprüfen kann, finden Sie unter "Unterstützte Treiber".
Weitere Informationen und Tipps zur Verwendung von Static Driver Verifier finden Sie in den folgenden Themen: