Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ha olyan robusztus illesztőprogramot szeretne írni, amely megfelel a Windows-illesztőprogram-modellnek (WDM) vagy a kernel módú illesztőprogram-keretrendszernek (KMDF), az NDIS-nek vagy a Storportnak, szakértelemmel kell rendelkeznie, és ismernie kell, hogy az illesztőprogram hogyan kommunikál az I/O-kezelővel. Ezeknek az illesztőprogramoknak a tesztelése ugyanilyen bonyolult.
A szilárd illesztőprogramok fejlesztése a következő okokból jelenthet kihívást:
Az illesztőprogramok aszinkronok, még az egyprocesszoros gépeken is.
Az illesztőprogramok nagy mértékben újrakonvensednek.
Az illesztőprogramok számos homályos szabályt használnak.
A vezetőmodellek evolúciósak és idővel öregednek.
Az eszközillesztők tesztelését a következő okok korlátozzák:
Megfigyelés. Az illesztőprogram és az operációs rendszer közötti interakció során nem figyelhető meg hiba. Az illesztőprogramok megsérthetik az implicit használati szabályokat, ami összeomláshoz vagy helytelen viselkedéshez vezethet, de az illesztőprogramok fejlesztése és tesztelése során nehéz felismerni a hiba kiváltó okát.
Vezérlő. Azok a meghajtók, amelyek normál körülmények között megfelelően működnek, apró hibák léphetnek fel, amelyek csak rendkívüli esetekben fordulnak elő, mint például ha a verem alján lévő meghajtó kudarcot vall egy IRP-t. Az ilyen helyzetek nehezen gyakorolhatóak, így a hagyományos tesztelés nem észleli megfelelően a hiba útvonalakat az illesztőkódon keresztül.
Az SDV javítja a meghajtók tesztelése során tapasztalt megfigyelést és ellenőrzést. A WDM-, KMDF-, NDIS- és Storport-függvények megfelelő használatára vonatkozó szabályok meghatározásával és az illesztőprogram ezen szabályoknak való megfelelésének figyelésével az SDV javítja a hibák megfigyelésének képességét. A LowerDriverReturn WDM-szabály például azt határozza meg, hogy bizonyos körülmények között az illesztőprogram diszpécserprogramjának mindig azt az értéket kell visszaadnia, amelyet a veremben lévő alacsonyabb illesztőprogram adott vissza.
Az SDV növeli az irányítást az alábbi módokon:
Az illesztőprogram környezetének ellenséges modellje, ahol számos legrosszabb eset (például az operációs rendszer hívásai folyamatosan sikertelenek) fordulhatnak elő.
Hatékony statikus elemzés (az úgynevezett modellellenőrzés), amely szisztematikusan feltárja az illesztőprogram összes lehetséges végrehajtási útvonalát.
Az SDV az eszközillesztők alapvető egységtesztelési eszköze. Ellenséges környezetben helyezi el az illesztőprogramot, és szisztematikusan teszteli a kódútvonalakat az illesztőprogram-modell használati szabályainak megsértését keresve.
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.