Invariáns MDL veremellenőrzés

Az Invariant MDL pufferkezelés ellenőrzése funkció figyeli, hogyan kezeli az illesztőprogram az invariáns MDL-puffereket az illesztőprogram-veremben. 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.

Jegyzet Ez a beállítás Windows 8-tól kezdve érhető el.

Az Invariant MDL Stack-ellenőrzése beállítás biztosítja, hogy az illesztőprogramok csak akkor kövessék az invariáns MDL-pufferekre vonatkozó szabályokat, amikor a kérés elhagyja az illesztőprogram-vermet.

Amikor az IoCallDriver rutinjában először látható az invariáns MDL-vel rendelkező IRP, az egyedi aláírás az invariáns MDL-puffer tartalmából lesz kiszámítva, és egy belső adatbázisban tárolja. Az IRP IoCompleteRequest rutinbeli végrehajtása során, ha az IRP továbbra is hordoz egy invariáns MDL-t, amelyhez az aláírást rögzítettük, a Driver Verifier ellenőrzi, hogy a puffer nem változott-e.

Az írási kérelem invariáns puffere nem módosítható az IRP teljes élettartama alatt. Olvasási kérés esetén az invariáns puffer nem módosítható a küldési útvonalán, így a puffer-aláírás összehasonlítása az IoCallDriver utolsó hívásánál történik.

Az Invariant MDL Stack-ellenőrzése beállítás ellenőrzi az MDL-puffer invarianciáját az egész illesztőprogram-veremen, tekintet nélkül arra, hogy mi történik a pufferrel, amikor az áthalad a verem egyes illesztőprogramjain. Ez a beállítás globális, és nem kényszeríthető ki szelektíven illesztőprogramonként. Az Invariáns MDL Stack-ellenőrzése beállítás csak a szabálysértést észlelheti, anélkül, hogy rögzítené azt az illesztőprogramot, aki megsértette a puffer invarianciáját. A hibás illesztőprogram rögzítéséhez használja az Invariant MDL Illesztőprogram-ellenőrzés beállítását, amely ellenőrzi a puffer tartalmának invarianciáját az IoCallDriver és az IoCompleteRequest DDI-k minden hívásán.

A beállítás aktiválása

Az Invariant MDL Stack-ellenőrzés funkcióját egy vagy több illesztőprogramhoz aktiválhatja a Driver Verifier Manager vagy a Verifier.exe parancssor használatával. Az Invariant MDL Stack-ellenőrzés beállítás aktiválásához vagy inaktiválásához újra kell indítania a számítógépet. További információ: Illesztőprogram-ellenőrző beállításainak kiválasztása.

Az Invariáns MDL Stack-ellenőrzés beállítás aktiválásához aktiválnia kell az I/O-ellenőrzést is.

  • A parancssorban

    A parancssorban a verem invariáns MDL-ellenőrzése a 0x00002000 (13. bit) értékkel van jelölve. Az Invariant MDL Stack-ellenőrzés aktiválásához használjon egy 0x00002010 jelzőértéket, vagy adjon hozzá 0x00002010 a jelzőértékhez. Ez az érték aktiválja az I/O-ellenőrzést (0x10) és a Veremhez tartozó Invariant MDL-ellenőrzést (0x00002000). Például:

    verifier /flags 0x00002010 /driver MyDriver.sys
    

    A funkció a következő rendszerindítás után aktív lesz.

  • Driver Verifier Manager használata

    1. Indítsa el a Meghajtó Ellenőrző Kezelőt. Írja be Verifier parancssori ablakba.
    2. Válassza az Egyéni beállítások létrehozása (kódfejlesztők számára) lehetőséget, majd kattintson a Tovább gombra.
    3. Válassza Egyéni beállítások kiválasztása a teljes listából.
    4. Válassza az I/O-ellenőrzés és a veremhez kapcsolódó invariáns MDL-ellenőrzés lehetőséget.
    5. Indítsa újra a számítógépet.