MiCleanWorkingSet

NTSTATUS __stdcall MiCleanWorkingSet(_EPROCESS *Process){
  _MMSUPPORT_FULL *p_Vm; 
  _MMSUPPORT_SHARED *SharedVm; 
  UINT8 v4; 
  UINT8 v5; 
  unsigned __int64 MinimumWorkingSetSize; 

  p_Vm = &Process->Vm;
  SharedVm = MiGetSharedVm(&Process->Vm.Instance);
  v4 = ExAcquireSpinLockExclusive((INT64 *)&SharedVm->WorkingSetLock);
  SharedVm->GoodCitizenWaiting = 0;
  v5 = v4;
  p_Vm->Instance.Flags._bf_0 |= 1u;
  --Process->NumberOfPrivatePages;
  MiDrainSystemAccessLog(&p_Vm->Instance);
  MinimumWorkingSetSize = p_Vm->Instance.MinimumWorkingSetSize;
  MiUnlockWorkingSetExclusive(&p_Vm->Instance, v5);
  return MinimumWorkingSetSize - 4;
}

Referenced by:

MmCleanProcessAddressSpace