MEMORY_AREA* MmOpenMemoryAreaByAddress(PMADDRESS_SPACE AddressSpace,
PVOID Address);
NTSTATUS MmInitMemoryAreas(VOID);
-VOID ExInitNonPagedPool(ULONG BaseAddress);
+VOID MiInitializeNonPagedPool(VOID);
NTSTATUS MmFreeMemoryArea(PMADDRESS_SPACE AddressSpace,
PVOID BaseAddress,
ULONG Length,
NTSTATUS MmUnlockMemoryArea(MEMORY_AREA* MemoryArea);
NTSTATUS MmInitSectionImplementation(VOID);
+#ifndef __USE_W32API
#define MM_LOWEST_USER_ADDRESS (4096)
+#endif
PMEMORY_AREA MmSplitMemoryArea(struct _EPROCESS* Process,
PMADDRESS_SPACE AddressSpace,
ULONG MaxMemInMeg);
VOID MmInit2(VOID);
VOID MmInit3(VOID);
+VOID MiFreeInitMemory(VOID);
NTSTATUS MmInitPagerThread(VOID);
+NTSTATUS MmInitZeroPageThread(VOID);
-VOID MmInitKernelMap(PVOID BaseAddress);
+VOID MiInitKernelMap(VOID);
NTSTATUS MmCreatePageTable(PVOID PAddress);
typedef struct
VOID MmSetCleanPage(struct _EPROCESS* Process, PVOID Address);
VOID MmLockPage(PHYSICAL_ADDRESS PhysicalPage);
VOID MmUnlockPage(PHYSICAL_ADDRESS PhysicalPage);
+ULONG MmGetLockCountPage(PHYSICAL_ADDRESS PhysicalPage);
-NTSTATUS MmSafeCopyFromUser(PVOID Dest, PVOID Src, ULONG Count);
-NTSTATUS MmSafeCopyToUser(PVOID Dest, PVOID Src, ULONG Count);
+NTSTATUS MmSafeCopyFromUser(PVOID Dest, const VOID *Src, ULONG Count);
+NTSTATUS MmSafeCopyToUser(PVOID Dest, const VOID *Src, ULONG Count);
NTSTATUS
MmCreatePhysicalMemorySection(VOID);
PHYSICAL_ADDRESS
NTSTATUS (*Trim)(ULONG Target, ULONG Priority,
PULONG NrFreed));
VOID
-MmInitializeBalancer(ULONG NrAvailablePages);
+MmInitializeBalancer(ULONG NrAvailablePages, ULONG NrSystemPages);
NTSTATUS
MmReleasePageMemoryConsumer(ULONG Consumer, PHYSICAL_ADDRESS Page);
NTSTATUS
MmIsAvailableSwapPage(VOID);
VOID
MmShowOutOfSpaceMessagePagingFile(VOID);
+VOID
+MmRebalanceMemoryConsumers(VOID);
+BOOLEAN
+MiIsPagerThread(VOID);
+VOID
+MiStartPagerThread(VOID);
+VOID
+MmSetLRULastPage(PHYSICAL_ADDRESS PhysicalAddress);
+VOID
+MmRawDeleteVirtualMapping(PVOID Address);
+VOID
+MiStopPagerThread(VOID);
+NTSTATUS
+MmCreateVirtualMappingDump(PVOID Address,
+ ULONG flProtect,
+ PHYSICAL_ADDRESS PhysicalAddress);
#endif