EtwWriteStartScenario

INT64 __fastcall EtwWriteStartScenario(
        UINT64 RegHandle,
        const _EVENT_DESCRIPTOR *EventDescriptor,
        _GUID *ActivityId,
        UINT64 UserDataCount,
        _EVENT_DATA_DESCRIPTOR *UserData){
  unsigned int v5; 
  NTSTATUS ProviderIdFromHandle; 
  int v11; 
  _GUID ProviderGuid; 
  v5 = UserDataCount;
  ProviderGuid = 0i64;
  if( EventDescriptor && ActivityId )
  {
    if( EtwEventEnabled(RegHandle, (EVENT_DESCRIPTOR *)EventDescriptor, (EVENT_DESCRIPTOR *)ActivityId) )
    {
      ProviderIdFromHandle = EtwGetProviderIdFromHandle(RegHandle, 0, &ProviderGuid);
      if( ProviderIdFromHandle >= 0 )
      {
        if( ActivityId->Data1
          || ActivityId->Data2
          || ActivityId->Data3
          || ActivityId->Data4[0]
          || ActivityId->Data4[1]
          || ActivityId->Data4[2]
          || ActivityId->Data4[3]
          || ActivityId->Data4[4]
          || ActivityId->Data4[5]
          || ActivityId->Data4[6]
          || ActivityId->Data4[7]
          || (ZwTraceControl(), ProviderIdFromHandle = v11, v11 >= 0) )
        {
          ProviderIdFromHandle = EtwWrite(RegHandle, (EVENT_DESCRIPTOR *)EventDescriptor, ActivityId, v5, UserData);
          WdipStartEndScenario(&ProviderGuid, ActivityId, EventDescriptor, 0xAui64);
        }
      }
    }
    else
    {
      return(unsigned int)-1073741816;
    }
  }
  else
  {
    return(unsigned int)-1073741811;
  }
  return(unsigned int)ProviderIdFromHandle;
}

Referenced by:

IoInitSystemPreDrivers
PerfDiagInitialize
PopDiagTracePowerTransitionStart