EtwpUpdatePmcEvents
NTSTATUS __stdcall EtwpUpdatePmcEvents(_WMI_LOGGER_CONTEXT *LoggerContext, UINT64 *EventList, UINT64 a3){
unsigned int v3;
NTSTATUS PmcData;
__int64 i;
signed __int32 v9[14];
v3 = a3;
PmcData = 0;
if( !(_DWORD)a3 || (unsigned int)a3 > 4 )
return -1073741811;
if( *((_QWORD *)LoggerContext + 125) || (PmcData = EtwpAllocatePmcData(LoggerContext)) == 0 )
{
if( *(_DWORD *)(*((_QWORD *)LoggerContext + 125) + 8i64) )
PmcData = -1073741053;
for( i = 0i64; ; i = (unsigned int)(i + 1) )
{
v9[8] = i;
if( (unsigned int)i >= v3 )
break;
*(_WORD *)(*((_QWORD *)LoggerContext + 125) + 2 * i + 12) = *((_WORD *)EventList + 2 * i);
}
_InterlockedOr(v9, 0);
*(_DWORD *)(*((_QWORD *)LoggerContext + 125) + 8i64) = v3;
}
return PmcData;
}Referenced by:
EtwSetPerformanceTraceInformation