EtwpCheckForStackTracingExtension

INT64 __fastcall EtwpCheckForStackTracingExtension(INT64 a1, RTL_BITMAP *a2){
  unsigned __int16 *FlagExtension; 
  int updated; 
  unsigned __int16 *v7; 
  FlagExtension = EtwpGetFlagExtension(a1, 3);
  if( FlagExtension )
  {
    updated = EtwpUpdateStackTracing(
                (_WMI_LOGGER_CONTEXT *)a2,
                (UINT64 *)(FlagExtension + 2),
                (unsigned __int16)(4 * *FlagExtension - 4) >> 2);
    if( updated >= 0 )
    {
      v7 = EtwpGetFlagExtension(a1, 5);
      if( v7 )
      {
        if( 4 * *v7 == 12 )
          return(unsigned int)EtwpEnableStackCaching(
                                 (_WMI_LOGGER_CONTEXT *)a2,
                                 *((unsigned int *)v7 + 1),
                                 *((unsigned int *)v7 + 2));
        else
          return(unsigned int)-1073741811;
      }
    }
  }
  return(unsigned int)updated;
}

Referenced by:

EtwpStartLogger
EtwpUpdateTrace