MiAllocateDummyPage
_MMPFN *__stdcall MiAllocateDummyPage(INT64 a1){
__int64 v1;
_MMPFN *v2;
unsigned __int64 v3;
__int64 v4;
char v5;
MiAcquireNonPagedResources(&Irp, 1ui64);
LODWORD(v1) = MiGetPage((ULONG_PTR *)&Irp.Core.PartitionId, 0i64, 0x208ui64);
if( v1 == -1 )
KeBugCheckEx(0x7Du, *(&stru_140C50B28 + 853), *(&stru_140C50B28 + 851), *(&stru_140C50B28 + 852), (PVOID)0x102);
v2 = &MmGetPfnDb()[v1];
MiSetPfnTbFlushStamp(v2, 0i64, 0i64);
v2->PteLong = (unsigned __int64)MmGetPteBase();
v3 = MiLockPageInline(v2);
v4 = MiSwizzleInvalidPte(128i64);
v5 = *((_BYTE *)&v2->u3 + 2);
v2->OriginalPte.u.Long = v4;
v5 |= 7u;
v2->u3.ReferenceCount = 2;
*((_BYTE *)&v2->u3 + 2) = v5;
*((_BYTE *)&v2->u3 + 2) = v5 | 0x20;
*((_BYTE *)&v2->u3 + 2) |= 8u;
v2->u4._bf_0 &= 0x7FFFFFF000000000ui64;
_InterlockedAnd64(&v2->u2.Lock, 0x7FFFFFFFFFFFFFFFui64);
__writecr8(v3);
return v2;
}Referenced by:
MiInitSystem
MiInitializeDummyPages