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