EtwpUpdateStackTracing
INT64 __fastcall EtwpUpdateStackTracing(_WMI_LOGGER_CONTEXT *LoggerContext, UINT64 *StackTraceFilter, UINT64 Count){
unsigned int v3;
__int64 v6;
int v7;
v3 = Count;
v6 = 0i64;
v7 = 0;
if( (_DWORD)Count )
{
if( (unsigned int)Count > 0x100 )
return(unsigned int)-1073741811;
if( (*((_DWORD *)LoggerContext + 208) & 0x80u) != 0 )
{
RtlClearAllBits((RTL_BITMAP *)LoggerContext + 61);
}
else
{
v7 = EtwpInitializeStackTracing((INT64)LoggerContext);
if( v7 < 0 )
return(unsigned int)v7;
}
while( (unsigned int)v6 < v3 )
{
_bittestandset(*((signed __int32 **)LoggerContext + 123), *((_WORD *)StackTraceFilter + 2 * v6) & 0x1FFF);
v6 = (unsigned int)(v6 + 1);
}
}
else if( (*((_DWORD *)LoggerContext + 208) & 0x80u) != 0 )
{
RtlClearAllBits((RTL_BITMAP *)LoggerContext + 61);
}
return(unsigned int)v7;
}Referenced by:
EtwSetPerformanceTraceInformation
EtwpCheckForStackTracingExtension