WdipSemSqmAddToStream
INT64 __stdcall WdipSemSqmAddToStream(UINT64 DatapointId, UINT64 NumStreamEntries, UINT64 *StreamEntries){
unsigned int v3;
__int64 v4;
__int64 v5;
__int64 v6;
INT64 result;
int v8;
int v9;
int v10;
_DWORD Address[5];
int v12;
int v13;
int *v14;
int v15;
int v16;
int *v17;
int v18;
int v19;
int *v20;
int i;
int v22;
int v23;
v23 = DatapointId;
v9 = NumStreamEntries;
v10 = 1;
Address[0] = 48;
v8 = 11;
if( !StreamEntries || (unsigned int)(NumStreamEntries - 1) > 8 )
return 3221225485i64;
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 < (unsigned int)NumStreamEntries; *(&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] = StreamEntries;
StreamEntries = (UINT64 *)((char *)StreamEntries + 4);
*(&v12 + 2 * v6) = 4;
DatapointId = (UINT64)Address;
*(&v13 + 2 * v5) = 0;
*(_QWORD *)&Address[2 * v5 + 3] = Address;
}
LODWORD(result) = WdipSemWriteEvent(
(in6_addr *)DatapointId,
(UINT64)&WDI_SEM_EVENT_SQM_ADD_TO_STREAM,
0,
(INT8 *)(unsigned int)(3 * NumStreamEntries + 4),
(UINT64 *)&Address[3]);
return result;
}Referenced by:
WdipSemSqmLogInflightLimitExceededDataPoints
WdipSemSqmLogTimeoutDataPoints