Dela via


Verifierare för statisk drivrutin

Static Driver Verifier (även kallat "StaticDV" eller "SDV") är ett statiskt verifieringsverktyg som systematiskt analyserar källkoden för windows kernel-mode-drivrutiner. SDV är ett tidsverktyg för kompilering som kan identifiera defekter och designproblem i en drivrutin. Baserat på en uppsättning gränssnittsregler och en modell av operativsystemet avgör SDV om drivrutinen interagerar korrekt med Windows-operativsystemets kernel.

Viktigt!

SDV stöds inte längre och SDV är inte tillgängligt i Windows 24H2 WDK- eller EWDK-versioner. Den är inte tillgänglig i WDK:er som är nyare än version 26017 och ingår inte i Windows 24H2 RTM WDK. SDV kan fortfarande användas genom att ladda ned Windows 11, version 22H2 EWDK (släpptes 24 oktober 2023) med Visual Studio build tools 17.1.5 från Download the Windows Driver Kit (WDK). Endast användning av Enterprise WDK för att köra SDV rekommenderas. Användning av äldre versioner av standard-WDK tillsammans med de senaste versionerna av Visual Studio rekommenderas inte, eftersom detta sannolikt resulterar i analysfel.
Framöver är CodeQL det primära statiska analysverktyget för drivrutiner. CodeQL tillhandahåller ett kraftfullt frågespråk som behandlar kod som en databas som ska frågas, vilket gör det enkelt att skriva frågor för specifika beteenden, mönster med mera. Mer information om hur du använder CodeQL finns i CodeQL och logotestet för statiska verktyg.

Installera verifierare för statisk drivrutin

Statisk drivrutinsverifierare är tillgänglig som en del av Windows Driver Kit (WDK) i både den fullständiga WDK-upplevelsen och i fristående Enterprise WDK. Dessutom krävs Visual C++ Redistributable Packages för Visual Studio för att SDV ska kunna köras. Se följande:

Visual Studio-integrering

Kontrollanten för statiska drivrutiner är integrerad i Visual Studio. Du kan köra statisk analys i ditt Visual Studio-drivrutinsprojekt. Du kan starta, konfigurera och styra statisk drivrutinsverifierare från drivrutinsmenyn i Visual Studio.

Dokumentation för statisk drivrutinsverifierare

Hitta buggar i Windows-drivrutinskoden

Microsoft använder SDV för att testa de kernellägesdrivrutiner som ingår i Microsoft Windows-operativsystemet och för att testa exempeldrivrutinerna i WDK. Genom att använda DDI-efterlevnadsregler för specifika drivrutinsmodeller kan SDV verifiera rätt drivrutinsbeteende. SDV kan till exempel verifiera att föraren:

  • Anropar funktioner på rätt IRQL
  • Hämtar och släpper lås i rätt ordning
  • Korrekt användning av funktioner som hanterar I/O-begärandepaket (IRP)

SDV undersöker alla möjliga sökvägar via drivrutinskoden. Den är utformad för att hitta allvarliga fel i obskyra sökvägar som sannolikt inte kommer att påträffas ens i grundlig testning.

Ytterligare resurser

Specifik information om de drivrutiner som SDV kan verifiera finns i Drivrutiner som stöds

Mer information och tips om hur du använder statisk drivrutinsverifierare finns i följande: