MmPerformMemoryListCommand
INT64 __stdcall MmPerformMemoryListCommand(){
_MI_PARTITION *v0;
int v1;
int v2;
UINT64 v3;
int v5;
int v6;
int v7;
UINT64 v8;
MiGetProcessPartition(*((_EPROCESS **)KeGetCurrentThread() + 23));
if( !v1 )
{
v3 = 0i64;
goto LABEL_4;
}
v2 = v1 - 1;
if( !v2 )
{
v3 = 1i64;
LABEL_4:
MiCaptureAllWorkingSetAccessBits((UINT64)v0, v3);
return 0i64;
}
v5 = v2 - 1;
if( !v5 )
{
MiEmptyAllWorkingSets(v0);
return 0i64;
}
v6 = v5 - 1;
if( !v6 )
{
MiFlushAllPages(v0, 0);
return 0i64;
}
v7 = v6 - 1;
if( !v7 )
{
v8 = 8i64;
goto LABEL_14;
}
if( v7 == 1 )
{
v8 = 1i64;
LABEL_14:
MiPurgePartitionStandby(v0, v8);
return 0i64;
}
return 3221225659i64;
}Referenced by:
MmIssueMemoryListCommand
PfPowerActionNotify
PfpLogScenarioEvent
PfpPowerActionStartScenarioTracing
PopVerifierFlushMemoryBeforeSleep