MiChargeFullProcessCommitment

NTSTATUS __stdcall MiChargeFullProcessCommitment(ULONG_PTR TargetProcess, UINT64 QuotaCharge){
  char v2; 
  _EPROCESS *v4; 
  _EPROCESS *v5; 
  int v6; 
  _MI_PARTITION *ProcessPartition; 
  NTSTATUS v9; 
  _COMMIT_FAIL_LOCATION v10; 

  v2 = 0;
  v4 = *(_EPROCESS **)&TargetProcess;
  if( *(PEPROCESS *)&TargetProcess == PsInitialSystemProcess
    || PspChargeQuota(
         *(_EPROCESS_QUOTA_BLOCK **)(*(_QWORD *)&TargetProcess + 1384i64),
         *(_EPROCESS **)&TargetProcess,
         PsResourcePageFile,
         QuotaCharge) >= 0 )
  {
    v2 = 1;
    MiChargeProcessCommitment(v4, QuotaCharge);
    if( v6 )
    {
      v2 = 3;
      if( (v4->Flags2 & 0x10) == 0 )
      {
LABEL_7:
        ProcessPartition = MiGetProcessPartition(v4, v5);
        if( MiChargeCommit(ProcessPartition, QuotaCharge, 0i64) )
          return 0;
        v10 = 4;
        goto LABEL_13;
      }
      if( PspChangeJobMemoryUsageByProcess(2ui64, QuotaCharge, v4, 0i64) )
      {
        v2 = 7;
        goto LABEL_7;
      }
      v10 = 3;
    }
    else
    {
      v10 = 2;
    }
LABEL_13:
    v9 = -1073741523;
    goto LABEL_14;
  }
  v9 = -1073741524;
  v10 = 1;
LABEL_14:
  if( (v2 & 1) != 0 )
    PsReturnProcessPageFileQuota(v4, QuotaCharge);
  if( (v2 & 2) != 0 )
    MiReturnProcessCommitment(v4, QuotaCharge);
  if( (unsigned __int8)v2 >= 4u )
    PspChangeJobMemoryUsageByProcess(2ui64, -(__int64)QuotaCharge, v4, 0i64);
  MiCommitRequestFailed(v4, (INT64)v5, QuotaCharge, v10);
  return v9;
}

Referenced by:

MiCommitExistingVad
MiCommitHotPatchTable
MiCommitPageTablesForVad
MiComputeProcessUserVa
MiCopyToUserVa
MiCreateLargePageVad
MiMakeHyperRangeAccessible
MiPrepareImagePagesForHotPatch
MiProbeAndLockPrepare
MiSetProtectionOnSection
MiSplitPrivatePage
MiSplitReducedCommitClonePage