MiReturnVadQuota

VOID __stdcall MiReturnVadQuota(_MMVAD *Vad, ULONG_PTR CurrentProcess, UINT64 PagedPoolCharged){
  __int64 LongFlags1; 
  unsigned __int64 v5; 
  int v6; 

  LongFlags1 = Vad->Core.u1.LongFlags1;
  LODWORD(LongFlags1) = LongFlags1 & 0x7FFFFFFF;
  v5 = LongFlags1 | ((unsigned __int64)Vad->Core.CommitChargeHigh << 31);
  v6 = PagedPoolCharged;
  if( v5 >= 0x7FFFFFFFDi64 )
  {
    if( v5 == 0x7FFFFFFFDi64 )
      PsReturnProcessNonPagedPoolQuota(*(_EPROCESS **)&CurrentProcess, 0x40ui64);
  }
  else
  {
    PsReturnProcessNonPagedPoolQuota(*(_EPROCESS **)&CurrentProcess, 0x88ui64);
    if( v6 == 1 && !MiVadPureReserve(&Vad->Core) )
      PsReturnProcessPagedPoolQuota(CurrentProcess, 8 * (Vad->Core.EndingVpn - Vad->Core.StartingVpn) + 8);
  }
}

Referenced by:

MiFinishVadDeletion