MiAllocateDummyPage
_MMPFN *__fastcall MiAllocateDummyPage(){
UINT64 Page;
char *v1;
unsigned __int64 v2;
INT64 v3;
char v4;
MiAcquireNonPagedResources((_MI_PARTITION *)&MiSystemPartition, 1ui64);
Page = MiGetPage((_MI_PARTITION *)&MiSystemPartition, 0i64, 0x208ui64);
if( Page == -1i64 )
KeBugCheckEx(0x7Du, qword_140C525D0, qword_140C525C0, HighestPhysicalPage, 0x102ui64);
v1 = (char *)MmGetPfnDb() + 48 * Page;
MiSetPfnTbFlushStamp((_MMPFN *)v1, 0i64, 0i64);
*((_QWORD *)v1 + 1) = MmGetPteBase();
v2 = (unsigned __int8)MiLockPageInline((INT64)v1);
v3 = MiSwizzleInvalidPte(128i64);
v4 = v1[34];
*((_QWORD *)v1 + 2) = v3;
v4 |= 7u;
*((_WORD *)v1 + 16) = 2;
v1[34] = v4;
v1[34] = v4 | 0x20;
v1[34] |= 8u;
*((_QWORD *)v1 + 5) &= 0x7FFFFFF000000000ui64;
_InterlockedAnd64((volatile signed __int64 *)v1 + 3, 0x7FFFFFFFFFFFFFFFui64);
__writecr8(v2);
return(_MMPFN *)v1;
}Referenced by:
MiInitSystem
MiInitializeDummyPages