MiScanPagefiles
VOID __stdcall MiScanPagefiles(_MI_PARTITION *Partition){
unsigned int v2;
unsigned int v3;
int v4;
char *i;
INT64 v6;
__int64 v7;
MiFreePageFileHashPfns(Partition);
if( !(unsigned int)MiSufficientAvailablePages((INT64)Partition, 0x420ui64) )
{
v2 = *((_DWORD *)Partition + 1734);
if( v2 )
{
if( *((_QWORD *)Partition + 950) && !*((_QWORD *)Partition + 123) )
{
v3 = *((_DWORD *)Partition + 248);
if( v3 >= 0x1E )
{
v4 = 0;
for( i = (char *)Partition + 6944;
(*(_BYTE *)(*(_QWORD *)i + 204i64) & 0x50) != 0 || !*(_QWORD *)(*(_QWORD *)i + 24i64);
i += 8 )
{
if( ++v4 >= v2 )
{
if( *((_BYTE *)Partition + 675) == 1 )
{
v6 = *((_QWORD *)Partition + 22);
*((_BYTE *)Partition + 675) = 0;
*((_DWORD *)Partition + 248) = 0;
if( PsReferencePartitionSafe(v6) )
{
*((_QWORD *)Partition + 123) = Partition;
*((_QWORD *)Partition + 122) = MiScanPagefileSpace;
*((_QWORD *)Partition + 120) = v7;
ExQueueWorkItemToPartition((char *)Partition + 960);
}
}
return;
}
}
}
else
{
*((_DWORD *)Partition + 248) = v3 + 1;
}
}
}
}
}Referenced by:
MiWorkingSetManager