PsReportProcessMemoryLimitViolation

VOID __stdcall PsReportProcessMemoryLimitViolation(){
  _ETHREAD *CurrentThread; 
  _EPROCESS *Process; 
  _EJOB *volatile Job; 
  __int64 v3; 

  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  Process = CurrentThread->Tcb.ApcState.Process;
  Job = Process->Job;
  v3 = *((_QWORD *)Job + 102);
  if( v3 && (*(_DWORD *)(v3 + 256) & 0x100) != 0 )
  {
    PspLockJobMemoryLimitsShared(*((_EJOB **)Job + 102), CurrentThread);
    if( *(_QWORD *)(v3 + 456) && (*(_DWORD *)(v3 + 876) & 0x200) != 0 && (Process->Flags2 & 0x24) == 4 )
    {
      _InterlockedOr((volatile signed __int32 *)&Process->1120, 0x20u);
      PspSendJobNotification((_EJOB *)v3, 9ui64, Process->UniqueProcessId, 1u);
    }
    PspUnlockJobMemoryLimitsShared((_EJOB *)v3, CurrentThread);
  }
}

Referenced by:

MiChargeProcessCommitment