MiFillGapAddresses
VOID __stdcall MiFillGapAddresses(VOID *VirtualAddress, VOID *EndVirtualAddress, UINT64 *GapFrames){
_MMPTE *PfnDb;
char *v5;
_MMPTE *PteBase;
__int64 v7;
UINT64 PagingLevel;
_MI_PTE_RANGE PteHierarchy;
char v10;
PfnDb = (_MMPTE *)MmGetPfnDb();
v5 = &v10;
PteBase = MmGetPteBase();
v7 = 4i64;
do
{
PfnDb = (_MMPTE *)((char *)PteBase + (((unsigned __int64)PfnDb >> 9) & 0x7FFFFFFFF8i64));
EndVirtualAddress = (char *)PteBase + (((unsigned __int64)EndVirtualAddress >> 9) & 0x7FFFFFFFF8i64);
*((_QWORD *)v5 - 1) = PfnDb;
*(_QWORD *)v5 = EndVirtualAddress;
v5 += 16;
--v7;
}
while( v7 );
LODWORD(PagingLevel) = 3;
MiFillGapPtes(PfnDb, (_MMPTE *)EndVirtualAddress, &PteHierarchy, GapFrames, PagingLevel);
}Referenced by:
MiFillPfnGaps