Sdílet prostřednictvím


Statické příkazy pro ověření ovladače (MSBuild)

Statický ovladač Verifier (SDV) můžete spustit v okně příkazového řádku sady Visual Studio , a to buď prostřednictvím instalace sady Windows Driver Kit (WDK), nebo spuštěním sady Enterprise Windows Driver Kit (EWDK). Přejděte do adresáře, kde je uložený soubor projektu ovladače nebo soubor projektu knihovny. Parametry se můžou na příkazovém řádku zobrazit v libovolném pořadí.

Important

SDV se už nepodporuje a SDV není k dispozici ve verzích Windows 24H2 WDK nebo EWDK. Není k dispozici v wdk novější než build 26017 a není součástí windows 24H2 RTM WDK. SDV lze stále používat stažením Windows 11 verze 22H2 EWDK, vydaného 24. října 2023, s nástroji Visual Studio Build Tools 17.1.5 z Stáhnout sadu Windows Driver Kit (WDK). Doporučuje se pouze použití sady Enterprise WDK ke spuštění SDV. Použití starších verzí standardní sady WDK ve spojení s nedávnými verzemi sady Visual Studio se nedoporučuje, protože to bude pravděpodobně mít za následek selhání analýzy.
V budoucnu bude CodeQL primárním nástrojem pro statickou analýzu ovladačů. CodeQL poskytuje výkonný dotazovací jazyk, který zpracovává kód jako databázi, která se má dotazovat, což usnadňuje psaní dotazů pro konkrétní chování, vzory a další. Další informace o použití CodeQL naleznete v tématu CodeQL a Static Tools Logo Test.

msbuild /t:sdv /p:Inputs="Parameters" ProjectFile /p:Configuration=configuration /p:Platform=platform

Musíte vybrat konfiguraci vydané verze (například /p:Configuration="Windows 7 Release"). Seznam podporovaných konfigurací vydaných verzí najdete v tématu Sestavení ovladače. Platformou může být Win32 (pro x86) nebo x64 (například /p:Platform=Win32).

Note

Nezapomeňte zkontrolovat plán řízení spotřeby počítače, abyste měli jistotu, že počítač během analýzy nepřejde do stavu spánku.

Parameters

/scan

Vyhledá zdrojové kódy ovladače pro deklarace typu role funkce. Informace o deklarování ovladačů zadaných funkcí zpětného volání a rutin odesílání naleznete v tématu Použití deklarací typu role funkce. Během této kontroly se SDV pokusí zjistit vstupní body ovladače, které potřebuje k ověření ovladače. Zaznamenává výsledky kontroly v souboru Sdv-map.h, který vytvoří v adresáři projektu ovladače.

Další informace najdete v tématu Příprava zdrojového kódu.

/check:<em>Rule</em> |Rule,...

Spustí ověření pomocí zadaných pravidel. Více než jedno pravidlo můžete zadat tak, že každé pravidlo oddělíte čárkou. Spusťte příkaz /check: a zadejte soubor projektu sady Visual Studio ovladače (*.vcxproj).

Pravidlo je název jednoho pravidla nebo vzoru názvu pravidla , který obsahuje zástupné znaky (*), které představují jeden nebo více znaků. Při použití samotného zástupné znaky (*) představují všechna pravidla.

/check:RuleList.sdv

Spustí ověření pomocí pravidel v zadaném souboru seznamu pravidel. Pomocí tohoto parametru můžete vypsat pouze jeden soubor. V souboru seznamu pravidel může být každý řádek názvem jednoho pravidla nebo může být zástupným znakem (*), který představuje všechna pravidla SDV. Spusťte příkaz /check:RuleList.sdv a zadejte soubor projektu sady Visual Studio ovladače (*.vcxproj).

RuleList.sdv je plně kvalifikovaná cesta a název souboru seznamu pravidel. Soubor musí mít příponu názvu souboru .sdv . Pokud soubor není v místním adresáři, cesta se vyžaduje. Pokud cesta nebo název souboru obsahuje mezery, musíte uzavřít RuleList.sdv v uvozovkách.

Pokud zadáte možnost /check: bez zadání pravidla, spustí se SDV s výchozí sadou pravidel pro model ovladače.

/lib

Zpracuje knihovnu v aktuálním adresáři. SDV volá MSBuild.exe kompilovat a sestavovat knihovnu pro externí použití a generuje soubory, které potřebuje k zahrnutí knihovny do ověření ovladače.

Tento parametr použijte před ověřením ovladačů, které vyžadují knihovnu. Spusťte příkaz msbuild /t:sdv /p:Inputs="/lib" a zadejte soubor projektu sady Visual Studio (*.vcxproj) pro knihovnu.

Další informace o použití a efektu parametru /lib naleznete v tématu Zpracování knihovny ve statickém ovladači Verifier.

/view

Otevře ověřitel statického ovladače. Spusťte příkazy /view a zadejte soubor projektu sady Visual Studio ovladače (*.vcxproj).

Výsledky jsou k dispozici ihned po dokončení ověření a zůstanou dostupné, dokud nepoužijete příkaz /clean k odstranění souborů SDV z adresáře projektu ovladače.

/clean

Odstraní soubory SDV z adresáře. Vzhledem k tomu, že se tyto soubory používají ke generování zobrazení sestavy ověření statického ovladače, příkaz /clean také odstraní sestavu ověření.

Spusťte příkaz /clean a zadejte soubor projektu sady Visual Studio (*.vcxproj) pro ovladač nebo knihovnu. Příkaz odstraní soubory SDV pouze pro zadaný projekt.

Před každým ověřením spusťte příkaz /clean pro projekt ovladače.

Pokud jsou soubory knihovny zastaralé, například když se změní kód knihovny, spusťte příkaz /clean pro knihovnu.

Příkaz /clean neodebere soubor Sdv-map.h, pokud je schválený příznak nastaven na true v souboru Sdv-map.h (Approved=true). SDV pak může tento soubor použít pro budoucí ověření.

/?

Zobrazí použití příkazů SDV. Příkazy, které používají tento parametr, nemusí být spouštěny v okně prostředí sestavení.

Comments

Spuštění příkazu msbuild /t:/sdv p:/Vstupy= /? bez parametrů zobrazí použití příkazů SDV.

Příkaz /clean odstraní soubory, které SDV používá k vytvoření zobrazení sestavy Ověření statického ovladače pro ověření. Po spuštění tohoto příkazu už není k dispozici zobrazení sestavy ověřitele statického ovladače pro ověření.

Examples

Spuštění SDV pomocí všech pravidel pro soubory ovladačů v místním adresáři pro projekt mydriver:

msbuild /t:sdv /p:Inputs="/check:*" mydriver.VcxProj /p:Configuration="Windows 7 Release"/p:Platform=Win32

Spuštění SDV pomocí pravidla CancelSpinLock u souborů ovladačů v místním adresáři:

msbuild /t:sdv /p:Inputs="/check:CancelSpinLock" mydriver.VcxProj /p:Configuration="Windows 7 Release" /p:Platform=Win32

Spuštění SDV pomocí pravidla zadaného v souboru seznamu pravidel Rules1.sdv v adresáři D:\SDV:

msbuild /t:sdv /p:Inputs="/check:D:\SDV\Rules1.sdv" mydriver.VcxProj /p:Configuration="Windows 7 Release" /p:Platform=Win32

Pokud chcete SDV spustit znovu, tentokrát pomocí možnosti /clean:

msbuild /t:sdv /p:Inputs="/clean" mydriver.VcxProj /p:Configuration="Windows 7 Release"/p:Platform=Win32

Chcete-li zobrazit ověřitel statického ovladače, abyste mohli zobrazit výsledky nejnovějšího ověření ovladače v místním adresáři:

msbuild /t:sdv /p:Inputs="/view" mydriver.VcxProj /p:Configuration="Windows 7 Release" /p:Platform=Win32

Použití nástroje Static Driver Verifier k vyhledání vad v ovladačích systému Windows