MiRebuildPageTableLeafAges
unsigned __int64 __fastcall MiRebuildPageTableLeafAges(__int64 a1, UINT64 a2){
UINT64 *v3;
UINT64 v4;
INT64 v5;
_MMPFN *v6;
unsigned __int64 result;
unsigned __int8 v8;
int v9;
UINT64 v10;
_OWORD v11[2];
v3 = (unsigned __int64 *)((char *)&MmGetPdeBase()->u.Long + ((a2 >> 18) & 0x3FFFFFF8));
v4 = *v3;
MiPteInShadowRange((UINT64)v3);
v10 = v4;
MiPteInShadowRange((UINT64)&v10);
v6 = &MmGetPfnDb()[(v4 >> 12) & 0xFFFFFFFFFi64];
result = (unsigned __int64)LODWORD(v6->ListEntry.Flink) >> 4;
if( (result & 0x3FF) == 0 )
{
MiCountWslesInPageTable(v5, a2, v11);
v8 = 8;
while( 1 )
{
result = --v8;
v9 = *((_DWORD *)v11 + v8);
if( v9 )
break;
if( !v8 )
return result;
}
result = v6->u1.$976DF529DAC3D73085C9E386D94B91E6::$E228DCF3D8940E384DBC5EFCA756D8B6::_bf_0 & 0xFFFFFFFFFFFE000Fui64;
v6->u1.$976DF529DAC3D73085C9E386D94B91E6::$E228DCF3D8940E384DBC5EFCA756D8B6::_bf_0 = result | (16
* (v9 & 0x3FF | ((unsigned __int64)(v8 & 7) << 10)));
}
return result;
}Referenced by:
MiConvertPrivateToProto
MiFreeWsleList
MmUnmapViewInSystemCache