MiFlushHyperSpace
VOID __stdcall MiFlushHyperSpace(){
struct _KPRCB *CurrentPrcb;
unsigned __int64 HyperPte;
_MI_TB_FLUSH_LIST TbFlushList[48];
memset(TbFlushList, 0i64, 0xB8u);
CurrentPrcb = KeGetCurrentPrcb();
HyperPte = (unsigned __int64)CurrentPrcb->HyperPte;
*(_QWORD *)&TbFlushList[6] = 0i64;
HyperPte &= 0xFFFFFFFFFFFFF000ui64;
TbFlushList[2] = 20;
LOBYTE(TbFlushList[1]) = 1;
MiInsertTbFlushEntry(TbFlushList, (VOID *)HyperPte, 0x40ui64, 0i64);
MiFlushTbList(TbFlushList);
CurrentPrcb->HyperPte = (void *)HyperPte;
}Referenced by:
MiAllocateHyperSpace
MiFlushCacheForAttributeChange
MiUnmapPageInHyperSpaceWorker