Illesztőprogramok lapozhatóvá tétele

Alapértelmezés szerint a linker az illesztőprogram-képfájl kód- és adatszakaszaihoz rendel hozzá olyan neveket, mint a ".text" és a ".data". Amikor a meghajtó betöltődik, az I/O-kezelő nem lapozhatóvá teszi ezeket a szakaszokat. A nem lapozott szakasz mindig a memóriában marad.

Az illesztőprogram-fejlesztőnek lehetősége van lapozhatóvá tenni az illesztőprogram kijelölt részeit, hogy a Windows áthelyezhesse ezeket a részeket a lapozófájlba, ha nincsenek használatban. A kód- vagy adatszakaszok lapozhatóvá tétele érdekében az illesztőprogram-fejlesztő egy "PAGE" kezdetű nevet rendel a szakaszhoz. Az I/O-kezelő ellenőrzi a szakaszok nevét, amikor betölt egy illesztőprogramot. Ha egy szakasz neve a "PAGE" betűvel kezdődik, az I/O-kezelő lapozhatóvá teszi a szakaszt.

Az IRQL >= DISPATCH_LEVEL által futtatott kódnak memória-rezidensnek kell lennie. Vagyis ennek a kódnak vagy nem lapozható szegmensben, vagy a memóriában zárolt lapozható szegmensben kell lennie. Ha az IRQL >= DISPATCH_LEVEL által futtatott kód laphibát okoz, hibaellenőrzés történik. Az illesztőprogramok a PAGED_CODE makróval ellenőrizhetik, hogy a lapozható függvények csak a megfelelő IRQL-eken vannak-e meghívva.

Ha egy kód- vagy adatszakasz lapozható, az illesztőprogram az MmLockPagableCodeSection vagy az MmLockPagableDataSection rutin meghívásával zárolhatja a szakaszt a memóriában. A szakasz zárolva marad, amíg az illesztőprogram nem hívja meg az MmUnlockPagableImageSection rutint a zárolás feloldásához. Bár a lapozható szakasz zárolva van, ugyanúgy viselkedik, mint egy nem lapozható szakasz.

További információ a nevek kód- és adatszakaszokhoz való hozzárendeléséről: MmLockPagableCodeSection és MmLockPagableDataSection.

Ez a szakasz a következő témaköröket tartalmazza:

Mikor legyen lapozható a kód és az adatok?

Illesztőprogram-kód vagy adatoldalassá tétele