MiEmptyTargetedWorkingSet

VOID __stdcall MiEmptyTargetedWorkingSet(_MMSUPPORT_INSTANCE *VmSupport, UINT8 WsIrql, UINT8 a3){
  _LIST_ENTRY *p_WorkingSetExpansionLinks; 
  _LIST_ENTRY *Flink; 
  _LIST_ENTRY *Blink; 
  _KLOCK_QUEUE_HANDLE LockHandle; 

  memset(&LockHandle, 0, sizeof(LockHandle));
  KeAcquireInStackQueuedSpinLock((PKSPIN_LOCK)&stru_140C4DB30 + 522, &LockHandle);
  p_WorkingSetExpansionLinks = &VmSupport->WorkingSetExpansionLinks;
  Flink = VmSupport->WorkingSetExpansionLinks.Flink;
  if( Flink )
  {
    Blink = VmSupport->WorkingSetExpansionLinks.Blink;
    if( Flink->Blink != p_WorkingSetExpansionLinks || Blink->Flink != p_WorkingSetExpansionLinks )
      __fastfail(3u);
    Blink->Flink = Flink;
    Flink->Blink = Blink;
    p_WorkingSetExpansionLinks->Flink = 0i64;
    VmSupport->Flags._bf_1 = VmSupport->Flags._bf_1 & 0xF9 | 2;
    KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
    __writecr8(LockHandle.OldIrql);
    MiEmptyWorkingSetInitiate((INT64)VmSupport, 0, 0i64, -1i64);
    KeAcquireInStackQueuedSpinLock((PKSPIN_LOCK)&stru_140C4DB30 + 522, &LockHandle);
    VmSupport->Flags._bf_1 &= 0xF9u;
    MiReturnWsToExpansionList(VmSupport, 0i64);
  }
  KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
  __writecr8(LockHandle.OldIrql);
}

Referenced by:

MiTrimAllSystemPagableMemory