MiLogCommitRequestFailed
void __fastcall MiLogCommitRequestFailed(__int64 a1, __int64 a2, int a3){
signed __int32 v6;
signed __int32 v7;
__int64 v8;
__int64 v9;
__int64 v10;
__int64 v11;
__int64 v12;
__int64 v13;
__int64 v14;
__int64 v15;
__int64 v16;
UINT64 JobCommitLimit;
UINT64 JobTotalCommitLimit;
UINT64 JobMemoryUsage;
UINT64 JobSharedMemoryUsage;
__int64 v21;
__int64 v22;
__int64 v23;
__int64 v24;
__int64 v25;
UINT64 v26;
UINT64 v27;
UINT64 v28;
UINT64 v29;
__int64 v30;
__int64 v31;
int v32;
__int16 ProcessSessionId;
__int16 BootId;
__int64 v35;
__int64 v36[30];
JobTotalCommitLimit = 0i64;
JobCommitLimit = 0i64;
JobMemoryUsage = 0i64;
JobSharedMemoryUsage = 0i64;
if( *(_QWORD *)&qword_140C4EC20 )
{
_m_prefetchw((const void *)(a1 + 2172));
v6 = *(_DWORD *)(a1 + 2172);
do
{
v7 = v6;
v6 = _InterlockedCompareExchange((volatile signed __int32 *)(a1 + 2172), v6 | 0x400, v6);
}
while( v7 != v6 );
if( (v6 & 0x400) == 0 )
{
v32 = *(_DWORD *)(a1 + 1088);
ProcessSessionId = PsGetProcessSessionId(a1);
BootId = KUSER_SHARED_DATA.BootId;
v35 = *(_QWORD *)(a1 + 1128);
v8 = *(_QWORD *)(a1 + 1384);
v9 = *(_QWORD *)(a1 + 1600);
v10 = *(_QWORD *)(a1 + 1608);
v11 = *(_QWORD *)(v8 + 320);
v12 = *(_QWORD *)(v8 + 256);
PsQueryJobMemoryUsageByProcess(
(_EPROCESS *)a1,
&JobCommitLimit,
&JobTotalCommitLimit,
&JobMemoryUsage,
&JobSharedMemoryUsage);
MiGetProcessPartition((_EPROCESS *)a1);
if( **(_DWORD **)&qword_140C4EC20 > 5u )
{
if( tlgKeywordOn(*(__int64 *)&qword_140C4EC20, 0x400000000000i64) )
{
v30 = v13;
v36[4] = (__int64)&v32;
v36[5] = 16i64;
v36[6] = (__int64)&v21;
v21 = a2;
v36[8] = (__int64)&v16;
v36[7] = 8i64;
v36[10] = (__int64)&v22;
v36[12] = (__int64)&v23;
v36[14] = (__int64)&v24;
v36[16] = (__int64)&v25;
v26 = JobCommitLimit;
v36[18] = (__int64)&v26;
v27 = JobTotalCommitLimit;
v36[20] = (__int64)&v27;
v28 = JobMemoryUsage;
v36[22] = (__int64)&v28;
v29 = JobSharedMemoryUsage;
v36[24] = (__int64)&v29;
v36[26] = (__int64)&v30;
v36[28] = (__int64)&v31;
LODWORD(v16) = a3;
v36[9] = 4i64;
v22 = v11;
v36[11] = 8i64;
v23 = v12;
v36[13] = 8i64;
v24 = v9;
v36[15] = 8i64;
v25 = v10;
v36[17] = 8i64;
v36[19] = 8i64;
v36[21] = 8i64;
v36[23] = 8i64;
v36[25] = 8i64;
v36[27] = 8i64;
v31 = v15;
v36[29] = 8i64;
tlgWriteEx_EtwWriteEx(v14, (unsigned __int8 *)&word_140025822, 0i64, 1u, 0, 0, 0xFu, (__int64)v36);
}
}
}
}
}Referenced by:
MiCommitRequestFailed