WdipSemEnableAllProviders

VOID __stdcall WdipSemEnableAllProviders(){
  __int64 v0; 
  unsigned __int16 v1; 
  unsigned __int16 i; 
  __int64 v3; 
  __int64 v4; 
  UINT64 EnableProperty; 
  UINT64 ControlCode; 

  v0 = 0i64;
  v1 = _InterlockedExchange(&WdipDiagLoggerId, WdipDiagLoggerId);
  for( i = _InterlockedExchange(&WdipContextLoggerId, WdipContextLoggerId);
        (unsigned int)v0 < (unsigned int)OldNumProviders;
        v0 = (unsigned int)(v0 + 1) )
  {
    v3 = *((_QWORD *)&ExBootDevicesRemovedEvent + v0 + 568);
    v4 = *(_QWORD *)v3 - *(_QWORD *)&WDI_SEM_PROVIDER.Data1;
    if( *(_QWORD *)v3 == *(_QWORD *)&WDI_SEM_PROVIDER.Data1 )
      v4 = *(_QWORD *)(v3 + 8) - *(_QWORD *)WDI_SEM_PROVIDER.Data4;
    if( v4 && *(_DWORD *)(v3 + 40) && *(_BYTE *)(v3 + 36) )
    {
      LODWORD(ControlCode) = 1;
      LODWORD(EnableProperty) = *(_DWORD *)(v3 + 32);
      if( WdipSemEnableDisableTrace(
             v1,
             *((_GUID **)&ExBootDevicesRemovedEvent + v0 + 568),
             *(_BYTE *)(v3 + 16),
             *(_QWORD *)(v3 + 24),
             EnableProperty,
             ControlCode) < 0 )
      {
        *(_OWORD *)(v3 + 16) = 0i64;
        *(_OWORD *)(v3 + 32) = 0i64;
        *(_OWORD *)(v3 + 48) = 0i64;
        *(_OWORD *)(v3 + 64) = 0i64;
      }
      else
      {
        *(_BYTE *)(v3 + 37) = 1;
        if( *(_BYTE *)(v3 + 68) )
        {
          LODWORD(ControlCode) = 1;
          LODWORD(EnableProperty) = *(_DWORD *)(v3 + 64);
          if( WdipSemEnableDisableTrace(
                 i,
                 (_GUID *)v3,
                 *(_BYTE *)(v3 + 48),
                 *(_QWORD *)(v3 + 56),
                 EnableProperty,
                 ControlCode) < 0 )
          {
            *(_OWORD *)(v3 + 48) = 0i64;
            *(_OWORD *)(v3 + 64) = 0i64;
          }
          else
          {
            *(_BYTE *)(v3 + 69) = 1;
          }
        }
      }
    }
  }
}

Referenced by:

WdipSemLoadScenarioTable