MiResetAccessBitPteWorker
VOID __stdcall MiResetAccessBitPteWorker(
_MMSUPPORT_INSTANCE *WsInfo,
_MMPTE *PointerPte,
UINT64 a3,
_MMPFN *a4,
INT64 a5,
INT64 a6){
int VaAge;
int v11;
_MI_TB_FLUSH_LIST *v12;
_MI_TB_FLUSH_LIST *TbFlushList;
UINT64 AccessLogging;
VaAge = (unsigned __int8)MiGetVaAge((INT64)WsInfo, a3);
if( VaAge == 7 && (unsigned int)MiGetPfnPriority(a4) < *(&stru_140C4DB30 + 655) )
{
v11 = 0;
}
else
{
v11 = 1;
if( (unsigned int)(VaAge - 1) <= 5 )
MiSetVaAgeList(WsInfo, a3, 1ui64, 0);
}
v12 = 0i64;
if( (a6 & 4) == 0 )
v12 = *(_MI_TB_FLUSH_LIST **)(a5 + 8);
LODWORD(AccessLogging) = (a6 & 4) != 0;
LODWORD(TbFlushList) = *(_DWORD *)a5;
if( MiClearPteAccessed(WsInfo, a4, PointerPte, v12, TbFlushList, AccessLogging) )
{
if( v11 == 1 && (a6 & 4) == 0 && *(_DWORD *)a5 )
{
if( v12 )
{
LABEL_15:
MiFlushTbListEarly(v12, 0i64);
return;
}
MiLogPageAccess(WsInfo, PointerPte);
}
if( !v12 )
return;
goto LABEL_15;
}
}Referenced by:
MiResetAccessBitsEPTCallback