WdipSemSqmAddToStream
NTSTATUS __fastcall WdipSemSqmAddToStream(const in6_addr *a1, unsigned int a2, __int64 a3){
unsigned int v3;
__int64 v4;
__int64 v5;
__int64 v6;
int v8;
unsigned int v9;
int v10;
_DWORD Address[5];
int v12;
int v13;
int *v14;
int v15;
int v16;
int *v17;
int v18;
int v19;
unsigned int *v20;
int i;
int v22;
int v23;
v23 = (int)a1;
v9 = a2;
v10 = 1;
Address[0] = 48;
v8 = 11;
if( !a3 || a2 - 1 > 8 )
return -1073741811;
v13 = 0;
v16 = 0;
v19 = 0;
v3 = 0;
v22 = 0;
*(_QWORD *)&Address[3] = WinSqmGlobalSession;
v14 = &v23;
v17 = &v8;
v20 = &v9;
v12 = 16;
v15 = 4;
v18 = 4;
for( i = 4; v3 < a2; *(&v12 + 2 * v5) = 4 )
{
v4 = 2i64 * (3 * v3 + 4);
*(&v13 + 2 * v4) = 0;
*(_QWORD *)&Address[2 * v4 + 3] = &v10;
*(&v12 + 2 * v4) = 4;
v5 = 6i64 * (v3 + 2);
v6 = 2i64 * (3 * v3++ + 5);
*(&v13 + 2 * v6) = 0;
*(_QWORD *)&Address[2 * v6 + 3] = a3;
a3 += 4i64;
*(&v12 + 2 * v6) = 4;
a1 = (const in6_addr *)Address;
*(&v13 + 2 * v5) = 0;
*(_QWORD *)&Address[2 * v5 + 3] = Address;
}
return WdipSemWriteEvent(a1, (ULONG)&WDI_SEM_EVENT_SQM_ADD_TO_STREAM, 0, (PSTR)(3 * a2 + 4), &Address[3]);
}Referenced by:
WdipSemSqmLogInflightLimitExceededDataPoints
WdipSemSqmLogTimeoutDataPoints