MiLogCommitRequestFailed

VOID __fastcall MiLogCommitRequestFailed(
        _EPROCESS *TargetProcess,
        UINT64 QuotaCharge,
        _COMMIT_FAIL_LOCATION FailureLocation){
  signed __int32 bf_0; 
  signed __int32 v7; 
  struct _EPROCESS_QUOTA_BLOCK *QuotaBlock; 
  unsigned __int64 CommitChargeLimit; 
  volatile unsigned __int64 CommitCharge; 
  __int64 v11; 
  __int64 v12; 
  _EPROCESS *v13; 
  __int64 v14; 
  __int64 v15; 
  __int64 v16; 
  __int64 v17; 
  UINT64 JobCommitLimit; 
  UINT64 JobTotalCommitLimit; 
  UINT64 JobMemoryUsage; 
  UINT64 JobSharedMemoryUsage; 
  UINT64 v22; 
  __int64 v23; 
  __int64 v24; 
  unsigned __int64 v25; 
  volatile unsigned __int64 v26; 
  UINT64 v27; 
  UINT64 v28; 
  UINT64 v29; 
  UINT64 v30; 
  __int64 v31; 
  __int64 v32; 
  int UniqueProcessId; 
  __int16 ProcessSessionId; 
  __int16 BootId; 
  _LARGE_INTEGER CreateTime; 
  __int64 v37[30]; 

  JobTotalCommitLimit = 0i64;
  JobCommitLimit = 0i64;
  JobMemoryUsage = 0i64;
  JobSharedMemoryUsage = 0i64;
  if( *(&stru_140C4DB30 + 542) )
  {
    _m_prefetchw(&TargetProcess->2172);
    bf_0 = TargetProcess->$65F3D318EB14490C2A61100CD615354D::_bf_0;
    do
    {
      v7 = bf_0;
      bf_0 = _InterlockedCompareExchange((volatile signed __int32 *)&TargetProcess->2172, bf_0 | 0x400, bf_0);
    }
    while( v7 != bf_0 );
    if( (bf_0 & 0x400) == 0 )
    {
      UniqueProcessId = (int)TargetProcess->UniqueProcessId;
      ProcessSessionId = PsGetProcessSessionId((INT64)TargetProcess);
      BootId = KUSER_SHARED_DATA.BootId;
      CreateTime = TargetProcess->CreateTime;
      QuotaBlock = TargetProcess->QuotaBlock;
      CommitChargeLimit = TargetProcess->CommitChargeLimit;
      CommitCharge = TargetProcess->CommitCharge;
      v11 = *(_QWORD *)&QuotaBlock->QuotaEntry[2].Limit;
      v12 = *(_QWORD *)QuotaBlock->QuotaEntry[2].CacheAlign;
      PsQueryJobMemoryUsageByProcess(
        TargetProcess,
        &JobCommitLimit,
        &JobTotalCommitLimit,
        &JobMemoryUsage,
        &JobSharedMemoryUsage);
      MiGetProcessPartition(TargetProcess, v13);
      if( **(&stru_140C4DB30 + 542) > 5u )
      {
        if( tlgKeywordOn(*(&stru_140C4DB30 + 542), 0x400000000000i64) )
        {
          v31 = v14;
          v37[4] = (__int64)&UniqueProcessId;
          v37[5] = 16i64;
          v37[6] = (__int64)&v22;
          v22 = QuotaCharge;
          v37[8] = (__int64)&v17;
          v37[7] = 8i64;
          v37[10] = (__int64)&v23;
          v37[12] = (__int64)&v24;
          v37[14] = (__int64)&v25;
          v37[16] = (__int64)&v26;
          v27 = JobCommitLimit;
          v37[18] = (__int64)&v27;
          v28 = JobTotalCommitLimit;
          v37[20] = (__int64)&v28;
          v29 = JobMemoryUsage;
          v37[22] = (__int64)&v29;
          v30 = JobSharedMemoryUsage;
          v37[24] = (__int64)&v30;
          v37[26] = (__int64)&v31;
          v37[28] = (__int64)&v32;
          LODWORD(v17) = FailureLocation;
          v37[9] = 4i64;
          v23 = v11;
          v37[11] = 8i64;
          v24 = v12;
          v37[13] = 8i64;
          v25 = CommitChargeLimit;
          v37[15] = 8i64;
          v26 = CommitCharge;
          v37[17] = 8i64;
          v37[19] = 8i64;
          v37[21] = 8i64;
          v37[23] = 8i64;
          v37[25] = 8i64;
          v37[27] = 8i64;
          v32 = v16;
          v37[29] = 8i64;
          tlgWriteEx_EtwWriteEx(v15, (unsigned __int8 *)&word_140025822, 0i64, 1u, 0, 0, 0xFu, (__int64)v37);
        }
      }
    }
  }
}

Referenced by:

MiCommitRequestFailed