// http://www.ditii.com/2007/09/28/windows-memory-management-x86-virtual-address-space/
//
PVOID MmNonPagedSystemStart;
-SIZE_T MiNonPagedSystemSize;
PVOID MmNonPagedPoolStart;
PVOID MmNonPagedPoolExpansionStart;
PVOID MmNonPagedPoolEnd = MI_NONPAGED_POOL_END;
SIZE_T MmTotalCommitLimitMaximum;
/*
- * These value tune certain user parameters. They have default values set here,
+ * These values tune certain user parameters. They have default values set here,
* as well as in the code, and can be overwritten by registry settings.
*/
SIZE_T MmHeapSegmentReserve = 1 * _1MB;
}
/* Release the PFN lock and flush the TLB */
- DPRINT1("Loader pages freed: %lx\n", LoaderPages);
+ DPRINT("Loader pages freed: %lx\n", LoaderPages);
KeReleaseQueuedSpinLock(LockQueuePfnLock, OldIrql);
KeFlushCurrentTb();
//
MmPagedPoolInfo.PagedPoolAllocationMap = ExAllocatePoolWithTag(NonPagedPool,
Size,
- ' mM');
+ TAG_MM);
ASSERT(MmPagedPoolInfo.PagedPoolAllocationMap);
//
//
MmPagedPoolInfo.EndOfPagedPoolBitmap = ExAllocatePoolWithTag(NonPagedPool,
Size,
- ' mM');
+ TAG_MM);
ASSERT(MmPagedPoolInfo.EndOfPagedPoolBitmap);
RtlInitializeBitMap(MmPagedPoolInfo.EndOfPagedPoolBitmap,
(PULONG)(MmPagedPoolInfo.EndOfPagedPoolBitmap + 1),
TotalPages += Md->PageCount;
}
- DPRINT1("Total: %08lX (%d MB)\n", (ULONG)TotalPages, (ULONG)(TotalPages * PAGE_SIZE) / 1024 / 1024);
+ DPRINT1("Total: %08lX (%lu MB)\n", (ULONG)TotalPages, (ULONG)(TotalPages * PAGE_SIZE) / 1024 / 1024);
}
BOOLEAN
//
MmNumberOfSystemPtes <<= 1;
}
+ if (MmSpecialPoolTag != 0 && MmSpecialPoolTag != -1)
+ {
+ //
+ // Add some extra PTEs for special pool
+ //
+ MmNumberOfSystemPtes += 0x6000;
+ }
}
- DPRINT("System PTE count has been tuned to %d (%d bytes)\n",
+ DPRINT("System PTE count has been tuned to %lu (%lu bytes)\n",
MmNumberOfSystemPtes, MmNumberOfSystemPtes * PAGE_SIZE);
/* Check if no values are set for the heap limits */
//
Bitmap = ExAllocatePoolWithTag(NonPagedPool,
(((MmHighestPhysicalPage + 1) + 31) / 32) * 4,
- ' mM');
+ TAG_MM);
if (!Bitmap)
{
//