MiFreeExcessSegments
NTSTATUS __stdcall MiFreeExcessSegments(UINT64 TakeAction){
unsigned __int64 NextPartition;
VOID **i;
NextPartition = 9 * (*(&stru_140C50B28 + 936) / 0xAui64);
if( *(&stru_140C50B28 + 920) >= NextPartition )
{
LOBYTE(NextPartition) = MiShouldTrimUnusedSegments();
if( (_DWORD)NextPartition )
{
NextPartition = (unsigned __int64)PsGetNextPartition(0i64);
for( i = (VOID **)NextPartition; NextPartition; i = (VOID **)NextPartition )
{
if( *((_QWORD *)*i + 212) )
KeSetEvent((PRKEVENT)((char *)*i + 1400), 0, 0);
NextPartition = (unsigned __int64)PsGetNextPartition(i);
}
}
}
return NextPartition;
}Referenced by:
MiChargeCommit
MiCheckControlArea
MiCountSystemPool
MmResourcesAvailable