Defines |
| #define | NDEBUG |
| #define | PA_BIT_PRESENT (0) |
| #define | PA_BIT_READWRITE (1) |
| #define | PA_BIT_USER (2) |
| #define | PA_BIT_WT (3) |
| #define | PA_BIT_CD (4) |
| #define | PA_BIT_ACCESSED (5) |
| #define | PA_BIT_DIRTY (6) |
| #define | PA_BIT_GLOBAL (8) |
| #define | PA_PRESENT (1 << PA_BIT_PRESENT) |
| #define | PA_READWRITE (1 << PA_BIT_READWRITE) |
| #define | PA_USER (1 << PA_BIT_USER) |
| #define | PA_DIRTY (1 << PA_BIT_DIRTY) |
| #define | PA_WT (1 << PA_BIT_WT) |
| #define | PA_CD (1 << PA_BIT_CD) |
| #define | PA_ACCESSED (1 << PA_BIT_ACCESSED) |
| #define | PA_GLOBAL (1 << PA_BIT_GLOBAL) |
| #define | PAGETABLE_MAP (0xc0000000) |
| #define | PAGEDIRECTORY_MAP (0xc0000000 + (PAGETABLE_MAP / (1024))) |
| #define | PAE_PAGEDIRECTORY_MAP (0xc0000000 + (PAGETABLE_MAP / (512))) |
| #define | HYPERSPACE (Ke386Pae ? 0xc0800000 : 0xc0400000) |
| #define | IS_HYPERSPACE(v) (((ULONG)(v) >= HYPERSPACE && (ULONG)(v) < HYPERSPACE + 0x400000)) |
| #define | PTE_TO_PFN(X) ((X) >> PAGE_SHIFT) |
| #define | PFN_TO_PTE(X) ((X) << PAGE_SHIFT) |
| #define | PAE_PTE_TO_PFN(X) (PAE_PAGE_MASK(X) >> PAGE_SHIFT) |
| #define | PAE_PFN_TO_PTE(X) ((X) << PAGE_SHIFT) |
| #define | ADDR_TO_PAGE_TABLE(v) (((ULONG)(v)) / (1024 * PAGE_SIZE)) |
| #define | ADDR_TO_PDE(v) |
| #define | ADDR_TO_PTE(v) (PULONG)(PAGETABLE_MAP + ((((ULONG)(v) / 1024))&(~0x3))) |
| #define | ADDR_TO_PDE_OFFSET(v) ((((ULONG)(v)) / (1024 * PAGE_SIZE))) |
| #define | ADDR_TO_PTE_OFFSET(v) ((((ULONG)(v)) % (1024 * PAGE_SIZE)) / PAGE_SIZE) |
| #define | PAE_ADDR_TO_PAGE_TABLE(v) (((ULONG)(v)) / (512 * PAGE_SIZE)) |
| #define | PAE_ADDR_TO_PDE(v) |
| #define | PAE_ADDR_TO_PTE(v) (PULONGLONG) (PAGETABLE_MAP + ((((ULONG_PTR)(v) / 512))&(~0x7))) |
| #define | PAE_ADDR_TO_PDTE_OFFSET(v) (((ULONG_PTR)(v)) / (512 * 512 * PAGE_SIZE)) |
| #define | PAE_ADDR_TO_PDE_PAGE_OFFSET(v) ((((ULONG_PTR)(v)) % (512 * 512 * PAGE_SIZE)) / (512 * PAGE_SIZE)) |
| #define | PAE_ADDR_TO_PDE_OFFSET(v) (((ULONG_PTR)(v))/ (512 * PAGE_SIZE)) |
| #define | PAE_ADDR_TO_PTE_OFFSET(v) ((((ULONG_PTR)(v)) % (512 * PAGE_SIZE)) / PAGE_SIZE) |
Functions |
| __inline LARGE_INTEGER | PTE_TO_PAGE (ULONG npage) |
| BOOLEAN | MmUnmapPageTable (PULONG Pt) |
| ULONG_PTR NTAPI | MiFlushTlbIpiRoutine (ULONG_PTR Address) |
| VOID | MiFlushTlb (PULONG Pt, PVOID Address) |
| PULONG | MmGetPageDirectory (VOID) |
| static ULONG | ProtectToPTE (ULONG flProtect) |
| NTSTATUS NTAPI | Mmi386ReleaseMmInfo (PEPROCESS Process) |
| NTSTATUS NTAPI | MmInitializeHandBuiltProcess (IN PEPROCESS Process, IN PLARGE_INTEGER DirectoryTableBase) |
| BOOLEAN NTAPI | MmCreateProcessAddressSpace (IN ULONG MinWs, IN PEPROCESS Process, IN PLARGE_INTEGER DirectoryTableBase) |
| VOID NTAPI | MmDeletePageTable (PEPROCESS Process, PVOID Address) |
| VOID NTAPI | MmFreePageTable (PEPROCESS Process, PVOID Address) |
| static PULONGLONG | MmGetPageTableForProcessForPAE (PEPROCESS Process, PVOID Address, BOOLEAN Create) |
| static PULONG | MmGetPageTableForProcess (PEPROCESS Process, PVOID Address, BOOLEAN Create) |
| static ULONGLONG | MmGetPageEntryForProcessForPAE (PEPROCESS Process, PVOID Address) |
| static ULONG | MmGetPageEntryForProcess (PEPROCESS Process, PVOID Address) |
| PFN_NUMBER NTAPI | MmGetPfnForProcess (PEPROCESS Process, PVOID Address) |
| VOID NTAPI | MmDisableVirtualMapping (PEPROCESS Process, PVOID Address, BOOLEAN *WasDirty, PPFN_NUMBER Page) |
| VOID NTAPI | MmRawDeleteVirtualMapping (PVOID Address) |
| VOID NTAPI | MmDeleteVirtualMapping (PEPROCESS Process, PVOID Address, BOOLEAN FreePage, BOOLEAN *WasDirty, PPFN_NUMBER Page) |
| VOID NTAPI | MmDeletePageFileMapping (PEPROCESS Process, PVOID Address, SWAPENTRY *SwapEntry) |
| BOOLEAN | Mmi386MakeKernelPageTableGlobal (PVOID PAddress) |
| BOOLEAN NTAPI | MmIsDirtyPage (PEPROCESS Process, PVOID Address) |
| BOOLEAN NTAPI | MmIsAccessedAndResetAccessPage (PEPROCESS Process, PVOID Address) |
| VOID NTAPI | MmSetCleanPage (PEPROCESS Process, PVOID Address) |
| VOID NTAPI | MmSetDirtyPage (PEPROCESS Process, PVOID Address) |
| VOID NTAPI | MmEnableVirtualMapping (PEPROCESS Process, PVOID Address) |
| BOOLEAN NTAPI | MmIsPagePresent (PEPROCESS Process, PVOID Address) |
| BOOLEAN NTAPI | MmIsPageSwapEntry (PEPROCESS Process, PVOID Address) |
| NTSTATUS NTAPI | MmCreateVirtualMappingForKernel (PVOID Address, ULONG flProtect, PPFN_NUMBER Pages, ULONG PageCount) |
| NTSTATUS NTAPI | MmCreatePageFileMapping (PEPROCESS Process, PVOID Address, SWAPENTRY SwapEntry) |
| NTSTATUS NTAPI | MmCreateVirtualMappingUnsafe (PEPROCESS Process, PVOID Address, ULONG flProtect, PPFN_NUMBER Pages, ULONG PageCount) |
| NTSTATUS NTAPI | MmCreateVirtualMapping (PEPROCESS Process, PVOID Address, ULONG flProtect, PPFN_NUMBER Pages, ULONG PageCount) |
| ULONG NTAPI | MmGetPageProtect (PEPROCESS Process, PVOID Address) |
| VOID NTAPI | MmSetPageProtect (PEPROCESS Process, PVOID Address, ULONG flProtect) |
| PHYSICAL_ADDRESS NTAPI | MmGetPhysicalAddress (PVOID vaddr) |
| PVOID NTAPI | MmCreateHyperspaceMapping (PFN_NUMBER Page) |
| PFN_NUMBER NTAPI | MmChangeHyperspaceMapping (PVOID Address, PFN_NUMBER NewPage) |
| PFN_NUMBER NTAPI | MmDeleteHyperspaceMapping (PVOID Address) |
| VOID NTAPI | MmUpdatePageDir (PEPROCESS Process, PVOID Address, ULONG Size) |
| VOID INIT_FUNCTION NTAPI | MmInitGlobalKernelPageDirectory (VOID) |
| ULONG NTAPI | MiGetUserPageDirectoryCount (VOID) |
| VOID INIT_FUNCTION NTAPI | MiInitPageDirectoryMap (VOID) |
Variables |
| ULONG | MmGlobalKernelPageDirectory [1024] |
| ULONGLONG | MmGlobalKernelPageDirectoryForPAE [2048] |
| BOOLEAN | Ke386Pae |
| BOOLEAN | Ke386NoExecute |