Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Som standard tilldelar länkaren namn som ".text" och ".data" till kod- och dataavsnitten i en drivrutinsbildfil. När drivrutinen läses in gör I/O-hanteraren dessa avsnitt icke-sidbytesbara. Ett icke-sidsidigt avsnitt är alltid minnesbaserat.
En drivrutinsutvecklare har möjlighet att göra avsedda delar av en drivrutin växlingsbar så att Windows kan flytta dessa delar till växlingsfilen när de inte används. För att göra ett kod- eller dataavsnitt sidbart tilldelar drivrutinsutvecklaren ett namn som börjar med "PAGE" till avsnittet. I/O-chefen kontrollerar namnen på avsnitten när den läser in en drivrutin. Om ett avsnittsnamn börjar med "PAGE" gör I/O-chefen avsnittet sidbart.
Kod som körs på IRQL >= DISPATCH_LEVEL måste vara minnesbaserad. Den här koden måste alltså vara antingen i ett ej sidbart segment eller i ett sidbart segment som är låst i minnet. Om kod som körs på IRQL >= DISPATCH_LEVEL orsakar ett sidfel, sker en felkontroll. Drivrutiner kan använda makrot PAGED_CODE för att verifiera att sidbara funktioner endast anropas på lämpliga IRQL:er.
Om ett kod- eller dataavsnitt är sidindelningsbart kan drivrutinen låsa avsnittet i minnet genom att anropa rutinen MmLockPagableCodeSection eller MmLockPagableDataSection. Avsnittet förblir låst tills drivrutinen anropar rutinen MmUnlockPagableImageSection för att låsa upp den. Även om den paginerbara sektionen är låst, beter den sig på samma sätt som en icke-sidorad sektion.
Information om hur du tilldelar namn till kod- och dataavsnitt finns i MmLockPagableCodeSection och MmLockPagableDataSection.
Det här avsnittet innehåller följande avsnitt: