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.
Ez a témakör az Illesztőprogram-ellenőrző választható funkcióit és szabályosztályait ismerteti. A standard beállítások használatakor elérhető beállítások listáját a Standard beállítások című témakörben találja.
Megjegyzés:
Bizonyos automatikus ellenőrzések mindig egy ellenőrzött illesztőprogramon lesznek végrehajtva, függetlenül attól, hogy mely beállítások lettek kiválasztva. Ha az illesztőprogram nem megfelelő IRQL-en használ memóriát, helytelenül hívja meg vagy oldja fel a pörgetési zárakat és a memórialefoglalásokat, helytelenül váltja a vermeket, vagy felszabadítja a memóriakészletet az időzítők első eltávolítása nélkül, az Illesztőprogram-ellenőrző észleli ezt a viselkedést. Az illesztőprogram eltávolításakor a Verifier ellenőrzi, hogy megfelelően adta-e ki az erőforrásait.
Szabályosztályok engedélyezése /ruleclasses használatával
A Windows 10 17627-es és újabb verziójától kezdve a következő szintaxissal engedélyezheti a szabályosztályokat:
/ruleclasses or /rc [<ruleclass_1> <ruleclass_2> ... <ruleclass_k>]
Vegye figyelembe, hogy ha több osztályt engedélyez (az alábbi pozitív decimális egész számmal jelölve), az egyes egész számokat szóköz karakterrel kell elválasztania.
Ezeknek a szabályosztályoknak a leírása alább található.
Standard szabályosztályok
| Szabályosztály | Decimális azonosító |
|---|---|
| Speciális készlet | 1 |
| Az IRQL-ellenőrzés kényszerítése | 2 |
| Csoportkövetés | 4 |
| I/O-ellenőrzés | 5 |
| Holtpont észlelése | 6 |
| DMA-ellenőrzés | 8 |
| Biztonsági ellenőrzések | 9 |
| Egyéb ellenőrzések | 12 |
| DDI-megfelelőség ellenőrzése | 18 |
| WDF-ellenőrzés | 34 |
További szabályosztályok
Ezek a szabályosztályok konkrét forgatókönyv-tesztelésre szolgálnak. A szabályosztályok (*) jelöléséhez i/O-ellenőrzés szükséges (5), amely automatikusan engedélyezve lesz. A (**) jelöléssel jelölt jelzők támogatják az egyes szabályok letiltását.
| Szabályosztály | Decimális azonosító |
|---|---|
| Randomizált alacsony erőforrások szimulációja | 3 |
| Függőben lévő I/O-kérelmek kényszerítése (*) | 10 |
| IRP-naplózás | 11 |
| Invariáns MDL-verem ellenőrzése (*) | 14 |
| Invariáns MDL-ellenőrzés illesztőprogramhoz (*) | 15 |
| A Power keretrendszer késleltetéses fuzzingja | 16 |
| Port/miniport felület ellenőrzése | 17 |
| Szisztematikus alacsony erőforrás-szimuláció | 19 |
| DDI-megfelelőség ellenőrzése (további) | 20 |
| Kernel-szinkronizálás késleltetési fuzzingja | 24 |
| Virtuális gép kapcsoló ellenőrzése | 25 |
| Kódintegritási ellenőrzések | 26 |
| Illesztőprogram-elkülönítési ellenőrzések (36-os verzió szükséges) | 33 |
| További IRQL-ellenőrzés | 35 |
| A DIF engedélyezése | 36 |
Választható funkció- és szabályosztály-leírások
Ha ez a beállítás engedélyezve van, az Illesztőprogram-ellenőrző lefoglalja az illesztőprogram memóriakérelmeinek többségét egy speciális készletből. Ez a speciális készlet figyeli a memóriatúllépéseket, a memória-lefutásokat és a felszabadítása után elérhető memóriát.
Ha ez a beállítás engedélyezve van, az Illesztőprogram-ellenőrző a lapozható kód érvénytelenítésével rendkívüli memóriaterhelést gyakorol az illesztőprogramra. Ha az illesztőprogram nem megfelelő IRQL-sel vagy pörgetési zárral próbál hozzáférni a lapozott memóriához, az Illesztőprogram-ellenőrző észleli ezt a viselkedést.
Alacsony erőforrások szimulációja (a Windows 8.1 randomizált alacsony erőforrás-szimulációja )
Ha ez a beállítás engedélyezve van, az Illesztőprogram-ellenőrző véletlenszerűen meghiúsítja a készletfoglalási kérelmeket és más erőforrás-kérelmeket. Ezeknek a foglalási hibáknak a rendszerbe való injektálásával a Driver Verifier teszteli, hogy az illesztőprogram képes-e megbirkózni az alacsony erőforrás-helyzettel.
Ha ez a beállítás engedélyezve van, az Illesztőprogram-ellenőrző ellenőrzi, hogy az illesztőprogram felszabadította-e minden memóriafoglalását, amikor ki van töltve. Ez feltárja a memóriavesztéseket.
Ha ez a beállítás aktív, a Driver Verifier speciális készletből kiosztja az illesztőprogram IRP-jeit, és figyeli az illesztőprogram I/O-kezelését. Ez észleli az I/O-rutinok illegális vagy inkonzisztens használatát.
Ha ez a beállítás aktív, a Driver Verifier figyeli a sofőr pörgetési zárak, mutexek és gyors mutexek használatát. Ez azt észleli, hogy az illesztőprogram kódja egy ponton holtpontot okozhat-e.
Továbbfejlesztett I/O-ellenőrzés
Ha ez a lehetőség aktív, a Driver Verifier figyeli több I/O Manager-rutin hívásait, és elvégzi a PnP-integrációs protokollok, a power IRP-k és a WMI IRP-k stressztesztjét. A Windows operációs rendszer Windows 7-es és újabb verzióiban a bővített I/O-ellenőrzés összes funkciója az I/O-ellenőrzés részeként jelenik meg, és már nem érhető el, és nem szükséges ezt a lehetőséget választani az Driver Verifier Managerben vagy a parancssorból.
Ha ez a beállítás aktív, a Driver Verifier figyeli a DMA-rutinok illesztőprogram általi használatát. Ez észleli a DMA-pufferek, adapterek és térképregisztrálások helytelen használatát.
(Windows Vista és újabb verziók) Ha ez a beállítás aktív, az Illesztőprogram-ellenőrző olyan gyakori hibákat keres, amelyek biztonsági réseket eredményezhetnek, például a felhasználói módú címekre való hivatkozást kernelmódú rutinok alapján.
(Windows Vista és újabb verziók) Ha ez a beállítás aktív, az Illesztőprogram-ellenőrző megkeresi az illesztőprogram összeomlásának gyakori okait, például a szabad memória helytelen kezelését.
Kényszeríts rá a függőben lévő I/O-kérelmekre
(Windows Vista és újabb verziók) Ha ez a beállítás aktív, az Illesztőprogram-ellenőrző teszteli az illesztőprogram válaszát STATUS_PENDING visszaadott értékekre az IoCallDriver-nak küldött véletlenszerű hívások STATUS_PENDING visszaadásával.
(Windows Server 2003 és újabb verziók) Ha ez a beállítás aktív, az Illesztőprogram-ellenőrző figyeli az illesztőprogramok IRP-k használatát, és létrehozza az IRP-használat naplóját.
(Windows Vista és újabb verziók) Ha ez a beállítás aktív, a Driver Verifier monitorozza a Storport miniport illesztőprogramját az exportált Storport rutinok helytelen használata, a túlzott késések és a Storport-kérelmek helytelen kezelése érdekében.
(Windows 8-tól kezdve) Ha ez a beállítás aktív, a Driver Verifier véletlenszerűen variálja a szálak ütemezését az energiagazdálkodási keretrendszert (PoFx) használó illesztőprogramok egyidejűségi hibáinak feltárásához. Ez a lehetőség nem ajánlott olyan illesztőprogramok esetében, amelyek nem használják közvetlenül az energiagazdálkodási keretrendszert (PoFx)..
(Windows 8-tól kezdve) Ha ez a beállítás aktív, az Illesztőprogram-ellenőrző olyan eszközillesztő-illesztői (DDI) szabályokat alkalmaz, amelyek ellenőrzik az illesztőprogram és az operációs rendszer kernelfelülete közötti megfelelő interakciót.
(Windows 8-tól kezdve) Az Invariant MDL Stack-ellenőrzése beállítás figyeli, hogy az illesztőprogram hogyan kezeli az invariáns MDL-puffereket az illesztőprogram-veremen. Az illesztőprogram-ellenőrző képes észlelni az invariáns MDL-pufferek illegális módosítását. A beállítás használatához az I/O-ellenőrzést legalább egy illesztőprogramon engedélyezni kell.
MDL invariáns ellenőrzése illesztőprogramhoz
(Windows 8-tól kezdve) Az Invariant MDL Illesztőprogram-ellenőrzése beállítás figyeli, hogy az illesztőprogram hogyan kezeli az invariáns MDL-puffereket illesztőprogramonként. Ez a beállítás észleli az invariáns MDL-pufferek illegális módosítását. A beállítás használatához engedélyeznie kell az I/O-ellenőrzést legalább egy illesztőprogramon.
(Csak Windows 8 és WDK 8 esetén érhető el) A Stack Based Failure Injection beállítás erőforráshibákat injektál kernel módú illesztőprogramokban. Ez a beállítás egy speciális KmAutoFail.sysillesztőprogramot használ a Illesztőprogram-ellenőrzővel együtt az illesztőprogram hibakezelési útvonalainak behatolásához.
Szisztematikus alacsony erőforrás-szimuláció
(Windows 8.1-től kezdve) A rendszerszintű alacsony erőforrás-szimulációs lehetőség erőforráshibákat injektál kernel módú illesztőprogramokban.
(Windows 8.1-től kezdve) Ha ez a beállítás aktív, az Illesztőprogram-ellenőrző NDIS- és vezeték nélküli HÁLÓZATI (WIFI) szabályok készletét alkalmazza, amelyek ellenőrzik az NDIS miniportillesztő és az operációs rendszer kernele közötti megfelelő interakciót.
Kernel-szinkronizálás késleltetése
(Windows 8.1-től kezdve) Ez a beállítás véletlenszerűen randomizálja a szálütemezéseket az illesztőprogramok egyidejűségi hibáinak észleléséhez.
Virtuálisgép-kapcsoló ellenőrzése
(Windows 8.1-től kezdve) Ez a beállítás a Hyper-V Bővíthető kapcsolón belül futó szűrőillesztőket (bővíthető kapcsolóbővítményeket) figyeli.
Port/Miniport felület ellenőrzése
A port/miniport interfész ellenőrzése lehetővé teszi a Driver Verifier számára, hogy megvizsgálja a DDI interfészt a PortCls.sys és a hang miniport-illesztőprogramjai között, valamint a ks.sys és az AVStream miniport-illesztőprogramjai között. Lásd: Az AVStream-illesztőprogramok szabályai és a hangillesztőkre vonatkozó szabályok.
Ha virtualizációalapú biztonságot használ a kódintegritás elkülönítésére, a kernelmemória csak a kódintegritási ellenőrzéssel válik végrehajthatóvá. Ez azt jelenti, hogy a kernel memórialapjai soha nem írhatók és végrehajthatóak (W+X), és a végrehajtható kód nem módosítható közvetlenül. A kódintegritási ellenőrzések biztosítják a kódintegritási szabályok kompatibilitását, és észlelik a szabálysértéseket.
A WDF-ellenőrzés ellenőrzi, hogy egy kernelmódú illesztőprogram megfelelően követi-e a Kernel-Mode Illesztőprogram-keretrendszer (KMDF) követelményeit.
További IRQL-ellenőrzés
A további IRQL-ellenőrzés kiegészíti a PASSIVE_LEVEL számára a DDI megfelelőségi ellenőrzési IRQL-szabályokat. Két szabályból áll:
- Az IrqlIoRtlZwPassive szabály azt határozza meg, hogy az illesztőprogram csak akkor hívja meg a szabályban felsorolt DDI-ket, ha az IRQL = PASSIVE_LEVEL címen fut.
- Az IrqlNtifsApcPassive szabály meghatározza, hogy az illesztőprogram csak akkor hívja meg a szabályban felsorolt DDI-kat, ha az IRQL = PASSIVE_LEVEL vagy az IRQL <= APC_LEVEL.
Illesztőprogram-elkülönítési ellenőrzések
Az illesztőprogram-elkülönítés ellenőrzése kritikus fontosságú a Windows-illesztőprogramok futtatókörnyezeti illesztőprogram-csomagelkülönítési követelményeinek érvényesítéséhez. További információt a Windows-illesztőprogramok fejlesztésének első lépései című témakörben talál. Az ellenőrzések figyelik a beállításjegyzék olyan olvasásait és írásait, amelyek nem engedélyezettek az izolált illesztőprogram-csomagokhoz.
Normál beállítások
| A standard beállításokban szereplő beállítások |
|---|
Továbbfejlesztett I/O-ellenőrzés (Windows 7-ben és újabb verziókban ez a beállítás automatikusan aktiválódik az I/O-ellenőrzés kiválasztásakor) |
Egyéb ellenőrzések (Windows Vista és újabb verziók) |
| DDI-megfelelőség ellenőrzése (Windows 8-tól kezdve) |
Az I/O-ellenőrzést igénylő illesztőprogram-ellenőrző beállításai
Négy lehetőség közül választhat, amelyekhez először engedélyeznie kell az I/O-ellenőrzést. Ha az I/O-ellenőrzés nincs engedélyezve, ezek a beállítások nem engedélyezettek.