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