Megosztás:


Támogatott illesztőprogramok

Ahhoz, hogy az SDV ellenőrizze az illesztőprogramot, képesnek kell lennie értelmezni az illesztőprogram kódját, különösen az illesztőprogram belépési pontjait, valamint a szükséges illesztőprogram-funkciókat támogató függvényekben és rutinokban lévő kódot.

A következő szakaszok ismertetik az illesztőprogramok alapvető követelményeit és azt a konkrét szintaxist, amelyet az SDV elvár az általa ellenőrizt illesztőprogramoktól. Az SDV nem ellenőrzi, hogy az illesztőprogramok megfelelnek-e ezeknek a követelményeknek, de ha az illesztőprogram nem felel meg, előfordulhat, hogy az SDV nem fut, és ritkán hamis pozitív vagy hamis negatív eredményt jelent félreértelmezés miatt.

Fontos

Az SDV már nem támogatott, és az SDV nem érhető el a Windows 24H2 WDK-ban vagy az EWDK-kiadásokban. A 26017-es buildnél újabb WDK-kban nem érhető el, és nem szerepel a Windows 24H2 RTM WDK-ban. Az SDV továbbra is használható a Windows 11 22H2 EWDK (2023. október 24-én megjelent) verziójának a Visual Studio 17.1.5-ös buildelési eszközeinek letöltésével a Windows Driver Kit (WDK) letöltéséből. Csak az Enterprise WDK használata ajánlott az SDV futtatásához. A standard WDK régebbi verzióinak használata a Visual Studio legutóbbi kiadásaival együtt nem ajánlott, mivel ez valószínűleg elemzési hibákat fog eredményezni.
A továbbiakban a CodeQL lesz az illesztőprogramok elsődleges statikus elemző eszköze. A CodeQL hatékony lekérdezési nyelvet biztosít, amely a kódot adatbázisként kezeli lekérdezni, így egyszerűen írhat lekérdezéseket adott viselkedések, minták és egyebek céljából. További információ a CodeQL használatáról a következőben található: CodeQL és a Static Tools Logo Test.

Alapvető illesztőprogram-jellemzők

Az SDV csak az alábbi jellemzőkkel rendelkező illesztőprogramokat tudja ellenőrizni:

Alapvető illesztőprogram-követelmények

Ahhoz, hogy az SDV ellenőrizze a WDM-illesztőt, az illesztőprogramnak a következőnek kell lennie:

Ahhoz, hogy az SDV ellenőrizze a KMDF-illesztőt, az illesztőprogramnak a következőnek kell lennie:

Ahhoz, hogy az SDV ellenőrizze az NDIS-illesztőprogramot, az illesztőprogramnak a következőnek kell lennie:

A SDV továbbá képes ellenőrizni a bizonyos funkciókat támogató illesztőprogramokat.

Fenntartott függvénynevek

Az SDV ellenőrző motor nem működik megfelelően, ha az illesztőprogram vagy a kódtár kódja ugyanazokat a függvénynév-mintákat használja, amelyeket az SDV belsőleg használ.

Az SDV nem megfelelően értelmezi a kódot, ha:

  • A kód olyan függvényneveket tartalmaz, amelyek __init kezdődnek, és amelyeket egy vagy több egész szám követ, például __init123.

  • A kód olyan függvényneveket tartalmaz, amelyek sdv_ kezdődnek, például sdv_Func, vagy tartalmazzák az _sdv_sztringet, például Func_sdv_ vagy Func_sdv_foo.

  • A könyvtár egy .def fájl használatával nevez át egy exportált függvényt, és a külső név megegyezik a könyvtár egy másik statikus függvényének nevével.

Ha az illesztőprogram kódja vagy kódtár kódja tartalmazza ezeket az elemeket, az SDV megpróbálja ellenőrizni az illesztőprogramot vagy feldolgozni az erőforrástárat, de az eredmény nem támogatott szolgáltatás (NSF). Az SDV-eredményekről további információt a Statikus illesztőprogram-ellenőrző eredményeinek értelmezése című témakörben talál.