Sdílet prostřednictvím


Podporované ovladače

Aby SDV ověřil ovladač, musí být schopen interpretovat kód ovladače, konkrétně vstupní body ovladače a kód ve funkcích a rutinách, které podporují požadované funkce ovladače.

Následující části popisují základní požadavky na ovladače a konkrétní syntaxi, kterou SDV očekává od ovladačů, které ověřuje. SDV neověřuje, že ovladače splňují tyto požadavky, ale pokud ovladač nevyhovuje, nemusí se SDV spustit a ve výjimečných situacích může hlásit falešně pozitivní nebo falešně negativní výsledky kvůli chybné interpretaci.

Důležité

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.

Základní charakteristiky ovladače

SDV dokáže ověřit pouze ovladače s následujícími vlastnostmi:

Základní požadavky na ovladač

Aby SDV ověřil ovladač WDM, musí ovladač:

Aby SDV ověřil ovladač KMDF, musí ovladač:

Aby SDV ověřil ovladač NDIS, musí ovladač:

Kromě toho může SDV ověřit ovladače, které podporují:

Názvy rezervovaných funkcí

Ověřovací modul SDV nefunguje správně, pokud kód ovladače nebo knihovny používá stejné vzory názvů funkcí, které SDV používá interně.

SDV konkrétně neinterpretuje správně kód, pokud:

  • Kód obsahuje názvy funkcí začínající __init a za nimi následuje jedno nebo více celých čísel, například __init123.

  • Kód obsahuje názvy funkcí, které začínají sdv_, například sdv_Func, nebo obsahují řetězec _sdv_, například Func_sdv_ nebo Func_sdv_foo.

  • Knihovna používá .def soubor k přejmenování exportované funkce a externí název je stejný jako název jiné statické funkce v knihovně.

Pokud kód ovladače nebo kód knihovny tyto prvky obsahuje, pokusí se SDV ověřit ovladač nebo zpracovat knihovnu, ale výsledek není podporovaná funkce (NSF). Další informace o výsledcích SDV naleznete v tématu Interpretace výsledků ověření statického ovladače.