Data Structures |
| struct | PMM_SECTION_SEGMENT |
| struct | PMM_IMAGE_SECTION_OBJECT |
| struct | PROS_SECTION_OBJECT |
| struct | PMEMORY_AREA |
| struct | PMM_RMAP_ENTRY |
| struct | MMPFNENTRY |
| struct | PMMPFN |
| struct | PMMPFNLIST |
| struct | PMM_MEMORY_CONSUMER |
| struct | PMM_REGION |
| struct | PMMFREE_POOL_ENTRY |
| struct | PMM_PAGED_POOL_INFO |
Defines |
| #define | MMDBG_COPY_WRITE 0x00000001 |
| #define | MMDBG_COPY_PHYSICAL 0x00000002 |
| #define | MMDBG_COPY_UNSAFE 0x00000004 |
| #define | MMDBG_COPY_CACHED 0x00000008 |
| #define | MMDBG_COPY_UNCACHED 0x00000010 |
| #define | MMDBG_COPY_WRITE_COMBINED 0x00000020 |
| #define | MMDBG_COPY_MAX_SIZE 0x8 |
| #define | MI_STATIC_MEMORY_AREAS (13) |
| #define | MEMORY_AREA_SECTION_VIEW (1) |
| #define | MEMORY_AREA_CACHE (2) |
| #define | MEMORY_AREA_OWNED_BY_ARM3 (15) |
| #define | MEMORY_AREA_STATIC (0x80000000) |
| #define | MM_PHYSICAL_PAGE_MPW_PENDING (0x8) |
| #define | MM_CORE_DUMP_TYPE_NONE (0x0) |
| #define | MM_CORE_DUMP_TYPE_MINIMAL (0x1) |
| #define | MM_CORE_DUMP_TYPE_FULL (0x2) |
| #define | MI_FREE_POOL_LISTS 4 |
| #define | MM_FREE_POOL_TAG 'lprF' |
| #define | MM_VIRTMEM_GRANULARITY (64 * 1024) |
| #define | STATUS_MM_RESTART_OPERATION ((NTSTATUS)0xD0000001) |
| #define | PAGE_WRITETHROUGH (1024) |
| #define | PAGE_SYSTEM (2048) |
| #define | SEC_PHYSICALMEMORY (0x80000000) |
| #define | MM_PAGEFILE_SEGMENT (0x1) |
| #define | MM_DATAFILE_SEGMENT (0x2) |
| #define | MC_CACHE (0) |
| #define | MC_USER (1) |
| #define | MC_SYSTEM (2) |
| #define | MC_MAXIMUM (3) |
| #define | PAGED_POOL_MASK 1 |
| #define | MUST_SUCCEED_POOL_MASK 2 |
| #define | CACHE_ALIGNED_POOL_MASK 4 |
| #define | QUOTA_POOL_MASK 8 |
| #define | SESSION_POOL_MASK 32 |
| #define | VERIFIER_POOL_MASK 64 |
| #define | MM_PAGED_POOL_SIZE (100*1024*1024) |
| #define | MM_NONPAGED_POOL_SIZE (100*1024*1024) |
| #define | MM_POOL_ALIGNMENT 8 |
| #define | MM_ROUND_UP(x, s) ((PVOID)(((ULONG_PTR)(x)+(s)-1) & ~((ULONG_PTR)(s)-1))) |
| #define | MM_ROUND_DOWN(x, s) ((PVOID)(((ULONG_PTR)(x)) & ~((ULONG_PTR)(s)-1))) |
| #define | PAGE_FLAGS_VALID_FROM_USER_MODE |
| #define | PAGE_FLAGS_VALID_FOR_SECTION |
| #define | PAGE_IS_READABLE |
| #define | PAGE_IS_WRITABLE |
| #define | PAGE_IS_EXECUTABLE |
| #define | PAGE_IS_WRITECOPY |
| #define | InterlockedCompareExchangePte(PointerPte, Exchange, Comperand) InterlockedCompareExchange((PLONG)(PointerPte), Exchange, Comperand) |
| #define | InterlockedExchangePte(PointerPte, Value) InterlockedExchange((PLONG)(PointerPte), Value) |
| #define | MI_SET_USAGE(x) |
| #define | MI_SET_PROCESS2(x) |
| #define | StartOfAllocation ReadInProgress |
| #define | EndOfAllocation WriteInProgress |
| #define | MM_FREE_POOL_SIGNATURE 'ARM3' |
| #define | MmDeleteHyperspaceMapping(x) MiUnmapPageInHyperSpace(HyperProcess, x, HyperIrql); |
Typedefs |
| typedef ULONG_PTR | SWAPENTRY |
| typedef VOID(* | PMM_ALTER_REGION_FUNC )(PMMSUPPORT AddressSpace, PVOID BaseAddress, SIZE_T Length, ULONG OldType, ULONG OldProtect, ULONG NewType, ULONG NewProtect) |
| typedef VOID(* | PMM_FREE_PAGE_FUNC )(PVOID Context, PMEMORY_AREA MemoryArea, PVOID Address, PFN_NUMBER Page, SWAPENTRY SwapEntry, BOOLEAN Dirty) |
Enumerations |
| enum | MI_PFN_USAGES {
MI_USAGE_NOT_SET = 0,
MI_USAGE_PAGED_POOL,
MI_USAGE_NONPAGED_POOL,
MI_USAGE_NONPAGED_POOL_EXPANSION,
MI_USAGE_KERNEL_STACK,
MI_USAGE_KERNEL_STACK_EXPANSION,
MI_USAGE_SYSTEM_PTE,
MI_USAGE_VAD,
MI_USAGE_PEB_TEB,
MI_USAGE_SECTION,
MI_USAGE_PAGE_TABLE,
MI_USAGE_PAGE_DIRECTORY,
MI_USAGE_LEGACY_PAGE_DIRECTORY,
MI_USAGE_DRIVER_PAGE,
MI_USAGE_CONTINOUS_ALLOCATION,
MI_USAGE_MDL,
MI_USAGE_DEMAND_ZERO,
MI_USAGE_ZERO_LOOP,
MI_USAGE_CACHE,
MI_USAGE_PFN_DATABASE,
MI_USAGE_BOOT_DRIVER,
MI_USAGE_INIT_MEMORY,
MI_USAGE_FREE_PAGE
} |
Functions |
| NTSTATUS NTAPI | MmDbgCopyMemory (IN ULONG64 Address, IN PVOID Buffer, IN ULONG Size, IN ULONG Flags) |
| BOOLEAN NTAPI | MmIsSessionAddress (IN PVOID Address) |
| NTSTATUS NTAPI | MmCreateMemoryArea (PMMSUPPORT AddressSpace, ULONG Type, PVOID *BaseAddress, SIZE_T Length, ULONG Protection, PMEMORY_AREA *Result, BOOLEAN FixedAddress, ULONG AllocationFlags, PHYSICAL_ADDRESS BoundaryAddressMultiple OPTIONAL) |
| PMEMORY_AREA NTAPI | MmLocateMemoryAreaByAddress (PMMSUPPORT AddressSpace, PVOID Address) |
| ULONG_PTR NTAPI | MmFindGapAtAddress (PMMSUPPORT AddressSpace, PVOID Address) |
| NTSTATUS NTAPI | MmFreeMemoryArea (PMMSUPPORT AddressSpace, PMEMORY_AREA MemoryArea, PMM_FREE_PAGE_FUNC FreePage, PVOID FreePageContext) |
| NTSTATUS NTAPI | MmFreeMemoryAreaByPtr (PMMSUPPORT AddressSpace, PVOID BaseAddress, PMM_FREE_PAGE_FUNC FreePage, PVOID FreePageContext) |
| VOID NTAPI | MmDumpMemoryAreas (PMMSUPPORT AddressSpace) |
| PMEMORY_AREA NTAPI | MmLocateMemoryAreaByRegion (PMMSUPPORT AddressSpace, PVOID Address, SIZE_T Length) |
| PVOID NTAPI | MmFindGap (PMMSUPPORT AddressSpace, SIZE_T Length, ULONG_PTR Granularity, BOOLEAN TopDown) |
| VOID NTAPI | MmReleaseMemoryAreaIfDecommitted (struct _EPROCESS *Process, PMMSUPPORT AddressSpace, PVOID BaseAddress) |
| VOID NTAPI | MmMapMemoryArea (PVOID BaseAddress, SIZE_T Length, ULONG Consumer, ULONG Protection) |
| VOID NTAPI | MiDebugDumpNonPagedPool (BOOLEAN NewOnly) |
| VOID NTAPI | MiDebugDumpNonPagedPoolStats (BOOLEAN NewOnly) |
| VOID NTAPI | MiInitializeNonPagedPool (VOID) |
| PVOID NTAPI | MiAllocatePoolPages (IN POOL_TYPE PoolType, IN SIZE_T SizeInBytes) |
| POOL_TYPE NTAPI | MmDeterminePoolType (IN PVOID VirtualAddress) |
| ULONG NTAPI | MiFreePoolPages (IN PVOID StartingAddress) |
| PVOID NTAPI | MmGetMdlPageAddress (PMDL Mdl, PVOID Offset) |
| PVOID NTAPI | ExAllocateNonPagedPoolWithTag (POOL_TYPE type, ULONG size, ULONG Tag, PVOID Caller) |
| PVOID NTAPI | ExAllocatePagedPoolWithTag (POOL_TYPE Type, ULONG size, ULONG Tag) |
| VOID NTAPI | ExFreeNonPagedPool (PVOID block) |
| VOID NTAPI | ExFreePagedPool (IN PVOID Block) |
| BOOLEAN NTAPI | ExpIsPoolTagDebuggable (ULONG Tag) |
| PVOID NTAPI | ExpAllocateDebugPool (POOL_TYPE Type, ULONG Size, ULONG Tag, PVOID Caller, BOOLEAN EndOfPage) |
| VOID NTAPI | ExpFreeDebugPool (PVOID Block, BOOLEAN PagedPool) |
| VOID NTAPI | MmInitializePagedPool (VOID) |
| PVOID NTAPI | MiAllocateSpecialPool (IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes, IN ULONG Tag, IN ULONG Underrun) |
| BOOLEAN NTAPI | MiRaisePoolQuota (IN POOL_TYPE PoolType, IN ULONG CurrentMaxQuota, OUT PULONG NewMaxQuota) |
| VOID NTAPI | MmBuildMdlFromPages (PMDL Mdl, PPFN_NUMBER Pages) |
| VOID NTAPI | MiShutdownMemoryManager (VOID) |
| VOID NTAPI | MmInit1 (VOID) |
| BOOLEAN NTAPI | MmInitSystem (IN ULONG Phase, IN PLOADER_PARAMETER_BLOCK LoaderBlock) |
| VOID NTAPI | MiFreeInitMemory (VOID) |
| VOID NTAPI | MmInitializeMdlImplementation (VOID) |
| SWAPENTRY NTAPI | MmAllocSwapPage (VOID) |
| VOID NTAPI | MmDereserveSwapPages (ULONG Nr) |
| VOID NTAPI | MmFreeSwapPage (SWAPENTRY Entry) |
| VOID NTAPI | MmInitPagingFile (VOID) |
| BOOLEAN NTAPI | MmIsFileObjectAPagingFile (PFILE_OBJECT FileObject) |
| NTSTATUS NTAPI | MmReadFromSwapPage (SWAPENTRY SwapEntry, PFN_NUMBER Page) |
| BOOLEAN NTAPI | MmReserveSwapPages (ULONG Nr) |
| NTSTATUS NTAPI | MmWriteToSwapPage (SWAPENTRY SwapEntry, PFN_NUMBER Page) |
| NTSTATUS NTAPI | MmDumpToPagingFile (ULONG BugCode, ULONG BugCodeParameter1, ULONG BugCodeParameter2, ULONG BugCodeParameter3, ULONG BugCodeParameter4, struct _KTRAP_FRAME *TrapFrame) |
| BOOLEAN NTAPI | MmIsAvailableSwapPage (VOID) |
| VOID NTAPI | MmShowOutOfSpaceMessagePagingFile (VOID) |
| NTSTATUS NTAPI | MmInitializeProcessAddressSpace (IN PEPROCESS Process, IN PEPROCESS Clone OPTIONAL, IN PVOID Section OPTIONAL, IN OUT PULONG Flags, IN POBJECT_NAME_INFORMATION *AuditName OPTIONAL) |
| NTSTATUS NTAPI | MmCreatePeb (IN PEPROCESS Process, IN PINITIAL_PEB InitialPeb, OUT PPEB *BasePeb) |
| NTSTATUS NTAPI | MmCreateTeb (IN PEPROCESS Process, IN PCLIENT_ID ClientId, IN PINITIAL_TEB InitialTeb, OUT PTEB *BaseTeb) |
| VOID NTAPI | MmDeleteTeb (struct _EPROCESS *Process, PTEB Teb) |
| VOID NTAPI | MmCleanProcessAddressSpace (IN PEPROCESS Process) |
| NTSTATUS NTAPI | MmDeleteProcessAddressSpace (IN PEPROCESS Process) |
| ULONG NTAPI | MmGetSessionLocaleId (VOID) |
| NTSTATUS NTAPI | MmSetMemoryPriorityProcess (IN PEPROCESS Process, IN UCHAR MemoryPriority) |
| NTSTATUS NTAPI | MmPageFault (ULONG Cs, PULONG Eip, PULONG Eax, ULONG Cr2, ULONG ErrorCode) |
| VOID NTAPI | MiInitializeSpecialPool () |
| BOOLEAN NTAPI | MmUseSpecialPool (IN SIZE_T NumberOfBytes, IN ULONG Tag) |
| BOOLEAN NTAPI | MmIsSpecialPoolAddress (IN PVOID P) |
| PVOID NTAPI | MmAllocateSpecialPool (IN SIZE_T NumberOfBytes, IN ULONG Tag, IN POOL_TYPE PoolType, IN ULONG SpecialType) |
| VOID NTAPI | MmFreeSpecialPool (IN PVOID P) |
| NTSTATUS NTAPI | MmAccessFault (IN BOOLEAN StoreInstruction, IN PVOID Address, IN KPROCESSOR_MODE Mode, IN PVOID TrapInformation) |
| NTSTATUS NTAPI | MmNotPresentFaultVirtualMemory (PMMSUPPORT AddressSpace, MEMORY_AREA *MemoryArea, PVOID Address) |
| NTSTATUS NTAPI | MmPageOutVirtualMemory (PMMSUPPORT AddressSpace, PMEMORY_AREA MemoryArea, PVOID Address, PFN_NUMBER Page) |
| NTSTATUS NTAPI | MmQueryAnonMem (PMEMORY_AREA MemoryArea, PVOID Address, PMEMORY_BASIC_INFORMATION Info, PSIZE_T ResultLength) |
| VOID NTAPI | MmFreeVirtualMemory (struct _EPROCESS *Process, PMEMORY_AREA MemoryArea) |
| NTSTATUS NTAPI | MmProtectAnonMem (PMMSUPPORT AddressSpace, PMEMORY_AREA MemoryArea, PVOID BaseAddress, SIZE_T Length, ULONG Protect, PULONG OldProtect) |
| NTSTATUS NTAPI | MmWritePageVirtualMemory (PMMSUPPORT AddressSpace, PMEMORY_AREA MArea, PVOID Address, PFN_NUMBER Page) |
| PVOID NTAPI | ExAllocatePage (VOID) |
| VOID NTAPI | ExUnmapPage (PVOID Addr) |
| PVOID NTAPI | ExAllocatePageWithPhysPage (PFN_NUMBER Page) |
| NTSTATUS NTAPI | MiCopyFromUserPage (PFN_NUMBER NewPage, PFN_NUMBER OldPage) |
| NTSTATUS NTAPI | MiZeroPage (PFN_NUMBER Page) |
| PVOID FASTCALL | MmSafeReadPtr (PVOID Source) |
| PVOID NTAPI | MmCreateKernelStack (BOOLEAN GuiStack, UCHAR Node) |
| VOID NTAPI | MmDeleteKernelStack (PVOID Stack, BOOLEAN GuiStack) |
| VOID NTAPI | MmInitializeMemoryConsumer (ULONG Consumer, NTSTATUS(*Trim)(ULONG Target, ULONG Priority, PULONG NrFreed)) |
| VOID NTAPI | MmInitializeBalancer (ULONG NrAvailablePages, ULONG NrSystemPages) |
| NTSTATUS NTAPI | MmReleasePageMemoryConsumer (ULONG Consumer, PFN_NUMBER Page) |
| NTSTATUS NTAPI | MmRequestPageMemoryConsumer (ULONG Consumer, BOOLEAN MyWait, PPFN_NUMBER AllocatedPage) |
| VOID NTAPI | MiInitBalancerThread (VOID) |
| VOID NTAPI | MmRebalanceMemoryConsumers (VOID) |
| VOID NTAPI | MmSetRmapListHeadPage (PFN_NUMBER Page, struct _MM_RMAP_ENTRY *ListHead) |
| struct _MM_RMAP_ENTRY *NTAPI | MmGetRmapListHeadPage (PFN_NUMBER Page) |
| VOID NTAPI | MmInsertRmap (PFN_NUMBER Page, struct _EPROCESS *Process, PVOID Address) |
| VOID NTAPI | MmDeleteAllRmaps (PFN_NUMBER Page, PVOID Context, VOID(*DeleteMapping)(PVOID Context, struct _EPROCESS *Process, PVOID Address)) |
| VOID NTAPI | MmDeleteRmap (PFN_NUMBER Page, struct _EPROCESS *Process, PVOID Address) |
| VOID NTAPI | MmInitializeRmapList (VOID) |
| VOID NTAPI | MmSetCleanAllRmaps (PFN_NUMBER Page) |
| VOID NTAPI | MmSetDirtyAllRmaps (PFN_NUMBER Page) |
| BOOLEAN NTAPI | MmIsDirtyPageRmap (PFN_NUMBER Page) |
| NTSTATUS NTAPI | MmPageOutPhysicalAddress (PFN_NUMBER Page) |
| FORCEINLINE PMMPFN | MiGetPfnEntry (IN PFN_NUMBER Pfn) |
| FORCEINLINE PFN_NUMBER | MiGetPfnEntryIndex (IN PMMPFN Pfn1) |
| PFN_NUMBER NTAPI | MmGetLRUNextUserPage (PFN_NUMBER PreviousPage) |
| PFN_NUMBER NTAPI | MmGetLRUFirstUserPage (VOID) |
| VOID NTAPI | MmInsertLRULastUserPage (PFN_NUMBER Page) |
| VOID NTAPI | MmRemoveLRUUserPage (PFN_NUMBER Page) |
| VOID NTAPI | MmLockPage (PFN_NUMBER Page) |
| VOID NTAPI | MmUnlockPage (PFN_NUMBER Page) |
| ULONG NTAPI | MmGetLockCountPage (PFN_NUMBER Page) |
| VOID NTAPI | MmInitializePageList (VOID) |
| VOID NTAPI | MmDumpArmPfnDatabase (IN BOOLEAN StatusOnly) |
| PFN_NUMBER NTAPI | MmGetContinuousPages (ULONG NumberOfBytes, PHYSICAL_ADDRESS LowestAcceptableAddress, PHYSICAL_ADDRESS HighestAcceptableAddress, PHYSICAL_ADDRESS BoundaryAddressMultiple, BOOLEAN ZeroPages) |
| VOID NTAPI | MmZeroPageThread (VOID) |
| PVOID NTAPI | MiMapPageInHyperSpace (IN PEPROCESS Process, IN PFN_NUMBER Page, IN PKIRQL OldIrql) |
| VOID NTAPI | MiUnmapPageInHyperSpace (IN PEPROCESS Process, IN PVOID Address, IN KIRQL OldIrql) |
| PVOID NTAPI | MiMapPagesInZeroSpace (IN PMMPFN Pfn1, IN PFN_NUMBER NumberOfPages) |
| VOID NTAPI | MiUnmapPagesInZeroSpace (IN PVOID VirtualAddress, IN PFN_NUMBER NumberOfPages) |
| FORCEINLINE PVOID | MmCreateHyperspaceMapping (IN PFN_NUMBER Page) |
| NTSTATUS NTAPI | MmCreateVirtualMappingForKernel (PVOID Address, ULONG flProtect, PPFN_NUMBER Pages, ULONG PageCount) |
| NTSTATUS NTAPI | MmCommitPagedPoolAddress (PVOID Address, BOOLEAN Locked) |
| NTSTATUS NTAPI | MmCreateVirtualMapping (struct _EPROCESS *Process, PVOID Address, ULONG flProtect, PPFN_NUMBER Pages, ULONG PageCount) |
| NTSTATUS NTAPI | MmCreateVirtualMappingUnsafe (struct _EPROCESS *Process, PVOID Address, ULONG flProtect, PPFN_NUMBER Pages, ULONG PageCount) |
| ULONG NTAPI | MmGetPageProtect (struct _EPROCESS *Process, PVOID Address) |
| VOID NTAPI | MmSetPageProtect (struct _EPROCESS *Process, PVOID Address, ULONG flProtect) |
| BOOLEAN NTAPI | MmIsPagePresent (struct _EPROCESS *Process, PVOID Address) |
| VOID NTAPI | MmInitGlobalKernelPageDirectory (VOID) |
| VOID NTAPI | MmDisableVirtualMapping (struct _EPROCESS *Process, PVOID Address, BOOLEAN *WasDirty, PPFN_NUMBER Page) |
| VOID NTAPI | MmEnableVirtualMapping (struct _EPROCESS *Process, PVOID Address) |
| VOID NTAPI | MmRawDeleteVirtualMapping (PVOID Address) |
| VOID NTAPI | MmGetPageFileMapping (struct _EPROCESS *Process, PVOID Address, SWAPENTRY *SwapEntry) |
| VOID NTAPI | MmDeletePageFileMapping (struct _EPROCESS *Process, PVOID Address, SWAPENTRY *SwapEntry) |
| NTSTATUS NTAPI | MmCreatePageFileMapping (struct _EPROCESS *Process, PVOID Address, SWAPENTRY SwapEntry) |
| BOOLEAN NTAPI | MmIsPageSwapEntry (struct _EPROCESS *Process, PVOID Address) |
| VOID NTAPI | MmTransferOwnershipPage (PFN_NUMBER Page, ULONG NewConsumer) |
| VOID NTAPI | MmSetDirtyPage (struct _EPROCESS *Process, PVOID Address) |
| PFN_NUMBER NTAPI | MmAllocPage (ULONG Consumer) |
| LONG NTAPI | MmAllocPagesSpecifyRange (ULONG Consumer, PHYSICAL_ADDRESS LowestAddress, PHYSICAL_ADDRESS HighestAddress, ULONG NumberOfPages, PPFN_NUMBER Pages) |
| VOID NTAPI | MmDereferencePage (PFN_NUMBER Page) |
| VOID NTAPI | MmReferencePage (PFN_NUMBER Page) |
| ULONG NTAPI | MmGetReferenceCountPage (PFN_NUMBER Page) |
| BOOLEAN NTAPI | MmIsPageInUse (PFN_NUMBER Page) |
| VOID NTAPI | MmSetSavedSwapEntryPage (PFN_NUMBER Page, SWAPENTRY SavedSwapEntry) |
| SWAPENTRY NTAPI | MmGetSavedSwapEntryPage (PFN_NUMBER Page) |
| VOID NTAPI | MmSetCleanPage (struct _EPROCESS *Process, PVOID Address) |
| NTSTATUS NTAPI | MmCreatePageTable (PVOID PAddress) |
| VOID NTAPI | MmDeletePageTable (struct _EPROCESS *Process, PVOID Address) |
| PFN_NUMBER NTAPI | MmGetPfnForProcess (struct _EPROCESS *Process, PVOID Address) |
| BOOLEAN NTAPI | MmCreateProcessAddressSpace (IN ULONG MinWs, IN PEPROCESS Dest, IN PULONG_PTR DirectoryTableBase) |
| NTSTATUS NTAPI | MmInitializeHandBuiltProcess (IN PEPROCESS Process, IN PULONG_PTR DirectoryTableBase) |
| NTSTATUS NTAPI | MmInitializeHandBuiltProcess2 (IN PEPROCESS Process) |
| NTSTATUS NTAPI | MmReleaseMmInfo (struct _EPROCESS *Process) |
| NTSTATUS NTAPI | MmSetExecuteOptions (IN ULONG ExecuteOptions) |
| NTSTATUS NTAPI | MmGetExecuteOptions (IN PULONG ExecuteOptions) |
| VOID NTAPI | MmDeleteProcessPageDirectory (struct _EPROCESS *Process) |
| VOID NTAPI | MmDeleteVirtualMapping (struct _EPROCESS *Process, PVOID Address, BOOLEAN FreePage, BOOLEAN *WasDirty, PPFN_NUMBER Page) |
| BOOLEAN NTAPI | MmIsDirtyPage (struct _EPROCESS *Process, PVOID Address) |
| VOID NTAPI | MmMarkPageMapped (PFN_NUMBER Page) |
| VOID NTAPI | MmMarkPageUnmapped (PFN_NUMBER Page) |
| VOID NTAPI | MmUpdatePageDir (struct _EPROCESS *Process, PVOID Address, ULONG Size) |
| VOID NTAPI | MiInitPageDirectoryMap (VOID) |
| ULONG NTAPI | MiGetUserPageDirectoryCount (VOID) |
| NTSTATUS | MmTrimUserMemory (ULONG Target, ULONG Priority, PULONG NrFreedPages) |
| NTSTATUS NTAPI | MmAlterRegion (PMMSUPPORT AddressSpace, PVOID BaseAddress, PLIST_ENTRY RegionListHead, PVOID StartAddress, SIZE_T Length, ULONG NewType, ULONG NewProtect, PMM_ALTER_REGION_FUNC AlterFunc) |
| VOID NTAPI | MmInitializeRegion (PLIST_ENTRY RegionListHead, SIZE_T Length, ULONG Type, ULONG Protect) |
| PMM_REGION NTAPI | MmFindRegion (PVOID BaseAddress, PLIST_ENTRY RegionListHead, PVOID Address, PVOID *RegionBaseAddress) |
| PFILE_OBJECT NTAPI | MmGetFileObjectForSection (IN PVOID Section) |
| NTSTATUS NTAPI | MmGetFileNameForAddress (IN PVOID Address, OUT PUNICODE_STRING ModuleName) |
| NTSTATUS NTAPI | MmGetFileNameForSection (IN PVOID Section, OUT POBJECT_NAME_INFORMATION *ModuleName) |
| PVOID NTAPI | MmAllocateSection (IN SIZE_T Length, PVOID BaseAddress) |
| NTSTATUS NTAPI | MmQuerySectionView (PMEMORY_AREA MemoryArea, PVOID Address, PMEMORY_BASIC_INFORMATION Info, PSIZE_T ResultLength) |
| NTSTATUS NTAPI | MmProtectSectionView (PMMSUPPORT AddressSpace, PMEMORY_AREA MemoryArea, PVOID BaseAddress, SIZE_T Length, ULONG Protect, PULONG OldProtect) |
| NTSTATUS NTAPI | MmInitSectionImplementation (VOID) |
| NTSTATUS NTAPI | MmNotPresentFaultSectionView (PMMSUPPORT AddressSpace, MEMORY_AREA *MemoryArea, PVOID Address, BOOLEAN Locked) |
| NTSTATUS NTAPI | MmPageOutSectionView (PMMSUPPORT AddressSpace, PMEMORY_AREA MemoryArea, PVOID Address, ULONG_PTR Entry) |
| NTSTATUS NTAPI | MmCreatePhysicalMemorySection (VOID) |
| NTSTATUS NTAPI | MmAccessFaultSectionView (PMMSUPPORT AddressSpace, MEMORY_AREA *MemoryArea, PVOID Address) |
| VOID NTAPI | MmFreeSectionSegments (PFILE_OBJECT FileObject) |
| NTSTATUS NTAPI | MmInitMpwThread (VOID) |
| NTSTATUS NTAPI | MmInitBsmThread (VOID) |
| BOOLEAN NTAPI | MiIsPagerThread (VOID) |
| VOID NTAPI | MiStartPagerThread (VOID) |
| VOID NTAPI | MiStopPagerThread (VOID) |
| NTSTATUS FASTCALL | MiQueryVirtualMemory (IN HANDLE ProcessHandle, IN PVOID Address, IN MEMORY_INFORMATION_CLASS VirtualMemoryInformationClass, OUT PVOID VirtualMemoryInformation, IN SIZE_T Length, OUT PSIZE_T ResultLength) |
| VOID NTAPI | MiReloadBootLoadedDrivers (IN PLOADER_PARAMETER_BLOCK LoaderBlock) |
| BOOLEAN NTAPI | MiInitializeLoadedModuleList (IN PLOADER_PARAMETER_BLOCK LoaderBlock) |
| NTSTATUS NTAPI | MmLoadSystemImage (IN PUNICODE_STRING FileName, IN PUNICODE_STRING NamePrefix OPTIONAL, IN PUNICODE_STRING LoadedName OPTIONAL, IN ULONG Flags, OUT PVOID *ModuleObject, OUT PVOID *ImageBaseAddress) |
| NTSTATUS NTAPI | MmUnloadSystemImage (IN PVOID ImageHandle) |
| NTSTATUS NTAPI | MmCheckSystemImage (IN HANDLE ImageHandle, IN BOOLEAN PurgeSection) |
| NTSTATUS NTAPI | MmCallDllInitialize (IN PLDR_DATA_TABLE_ENTRY LdrEntry, IN PLIST_ENTRY ListHead) |
| NTSTATUS NTAPI | MmGrowKernelStack (IN PVOID StackPointer) |
| FORCEINLINE VOID | MmLockAddressSpace (PMMSUPPORT AddressSpace) |
| FORCEINLINE VOID | MmUnlockAddressSpace (PMMSUPPORT AddressSpace) |
| FORCEINLINE PEPROCESS | MmGetAddressSpaceOwner (IN PMMSUPPORT AddressSpace) |
| FORCEINLINE PMMSUPPORT | MmGetCurrentAddressSpace (VOID) |
| FORCEINLINE PMMSUPPORT | MmGetKernelAddressSpace (VOID) |
Variables |
| PMMSUPPORT | MmKernelAddressSpace |
| PFN_COUNT | MiFreeSwapPages |
| PFN_COUNT | MiUsedSwapPages |
| SIZE_T | MmTotalPagedPoolQuota |
| SIZE_T | MmTotalNonPagedPoolQuota |
| PHYSICAL_ADDRESS | MmSharedDataPagePhysicalAddress |
| PFN_COUNT | MmNumberOfPhysicalPages |
| UCHAR | MmDisablePagingExecutive |
| PFN_NUMBER | MmLowestPhysicalPage |
| PFN_NUMBER | MmHighestPhysicalPage |
| PFN_NUMBER | MmAvailablePages |
| PFN_NUMBER | MmResidentAvailablePages |
| PMEMORY_ALLOCATION_DESCRIPTOR | MiFreeDescriptor |
| MEMORY_ALLOCATION_DESCRIPTOR | MiFreeDescriptorOrg |
| LIST_ENTRY | MmLoadedUserImageList |
| KMUTANT | MmSystemLoadLock |
| ULONG | MmNumberOfPagingFiles |
| PVOID | MmUnloadedDrivers |
| PVOID | MmLastUnloadedDrivers |
| PVOID | MmTriageActionTaken |
| PVOID | KernelVerifier |
| MM_DRIVER_VERIFIER_DATA | MmVerifierData |
| SIZE_T | MmTotalCommitLimit |
| SIZE_T | MmTotalCommittedPages |
| SIZE_T | MmSharedCommit |
| SIZE_T | MmDriverCommit |
| SIZE_T | MmProcessCommit |
| SIZE_T | MmPagedPoolCommit |
| SIZE_T | MmPeakCommitment |
| SIZE_T | MmtotalCommitLimitMaximum |
| PVOID | MiDebugMapping |
| PMMPTE | MmDebugPte |
| PMMPFN | MmPfnDatabase |
| MMPFNLIST | MmZeroedPageListHead |
| MMPFNLIST | MmFreePageListHead |
| MMPFNLIST | MmStandbyPageListHead |
| MMPFNLIST | MmModifiedPageListHead |
| MMPFNLIST | MmModifiedNoWritePageListHead |
| MM_MEMORY_CONSUMER | MiMemoryConsumers [MC_MAXIMUM] |
| PEPROCESS | HyperProcess |
| KIRQL | HyperIrql |