WheapPfaRetireExpiredMemoryEntries
VOID __stdcall WheapPfaRetireExpiredMemoryEntries(UINT64 Timestamp){
PVOID *v2;
UINT64 v3;
PVOID *v4;
PVOID **v5;
if( WheapPolicyMemPfaTimeout && Timestamp >= WheapPolicyMemPfaTimeout )
{
v2 = (PVOID *)WheapPfaList;
v3 = Timestamp - WheapPolicyMemPfaTimeout;
while( v2 != &WheapPfaList )
{
v4 = v2;
v2 = (PVOID *)*v2;
if( (unsigned __int64)v4[4] <= v3 )
{
if( v2[1] != v4 || (v5 = (PVOID **)v4[1], *v5 != v4) )
__fastfail(3u);
*v5 = v2;
v2[1] = v5;
WheapPfaLogPageMonitorRemoval((INT64)v4, 2i64, Timestamp);
ExFreePoolWithTag(v4, 0x61656857u);
}
}
}
}Referenced by:
WheapPfaMemoryCheck