// 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;
//
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),
//
MmNumberOfSystemPtes <<= 1;
}
+ if (MmSpecialPoolTag != 0 && MmSpecialPoolTag != -1)
+ {
+ //
+ // Add some extra PTEs for special pool
+ //
+ MmNumberOfSystemPtes += 0x6000;
+ }
}
DPRINT("System PTE count has been tuned to %lu (%lu bytes)\n",
//
Bitmap = ExAllocatePoolWithTag(NonPagedPool,
(((MmHighestPhysicalPage + 1) + 31) / 32) * 4,
- ' mM');
+ TAG_MM);
if (!Bitmap)
{
//