#pragma autorecover
#pragma namespace("\\\\.\\root\\microsoft\\windows\\EventTracingManagement")

Instance of __Win32Provider as $prov
{
  Name = "EventTracingManagement";
  ClsId = "{1BCD547A-62F6-4F2D-A0E3-B4930A3F3C33}";
  ImpersonationLevel = 1;
  HostingModel = "LocalSystemHost";
  version = 1073741825;
};

Instance of __MethodProviderRegistration
{
  Provider = $prov;
};

Instance of __InstanceProviderRegistration
{
  Provider = $prov;
  supportsGet = TRUE;
  supportsPut = TRUE;
  supportsDelete = TRUE;
  supportsEnumeration = TRUE;
  QuerySupportLevels;
};

[Abstract,UMLPackagePath("CIM::Core::CoreElements") : ToSubclass,locale(1033)] 
class CIM_ManagedElement
{
  string InstanceID;
  [MaxLen(64) : ToSubclass] string Caption;
  string Description;
  string ElementName;
};

[UMLPackagePath("CIM::Core::CoreElements") : ToSubclass,Abstract,locale(1033)] 
class CIM_ManagedSystemElement : CIM_ManagedElement
{
  datetime InstallDate;
  [MaxLen(1024) : ToSubclass] string Name;
  [ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "..", "0x8000.."} : ToSubclass,ArrayType("Indexed") : ToSubclass DisableOverride,ModelCorrespondence{"CIM_ManagedSystemElement.StatusDescriptions"} : ToSubclass] uint16 OperationalStatus[];
  [ArrayType("Indexed") : ToSubclass DisableOverride,ModelCorrespondence{"CIM_ManagedSystemElement.OperationalStatus"} : ToSubclass] string StatusDescriptions[];
  [Deprecated{"CIM_ManagedSystemElement.OperationalStatus"},ValueMap{"OK", "Error", "Degraded", "Unknown", "Pred Fail", "Starting", "Stopping", "Service", "Stressed", "NonRecover", "No Contact", "Lost Comm", "Stopped"} : ToSubclass,MaxLen(10) : ToSubclass] string Status;
  [ValueMap{"0", "5", "10", "15", "20", "25", "30", ".."} : ToSubclass] uint16 HealthState;
  [ValueMap{"0", "1", "2", "3", "4", "..", "0x8000.."} : ToSubclass] uint16 CommunicationStatus;
  [ValueMap{"0", "1", "2", "3", "4", "5", "..", "0x8000.."} : ToSubclass,ModelCorrespondence{"CIM_EnabledLogicalElement.PrimaryStatus", "CIM_ManagedSystemElement.HealthState"} : ToSubclass] uint16 DetailedStatus;
  [ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "..", "0x8000.."} : ToSubclass,ModelCorrespondence{"CIM_EnabledLogicalElement.EnabledState"} : ToSubclass] uint16 OperatingStatus;
  [ValueMap{"0", "1", "2", "3", "..", "0x8000.."} : ToSubclass,ModelCorrespondence{"CIM_ManagedSystemElement.DetailedStatus", "CIM_ManagedSystemElement.HealthState"} : ToSubclass] uint16 PrimaryStatus;
};

[UMLPackagePath("CIM::Core::CoreElements") : ToSubclass,Abstract,locale(1033)] 
class CIM_LogicalElement : CIM_ManagedSystemElement
{
};

[UMLPackagePath("CIM::Core::CoreElements") : ToSubclass,locale(1033),dynamic : ToInstance,provider("EventTracingManagement") : ToInstance] 
class MSFT_AutologgerConfig : CIM_LogicalElement
{
  [MaxLen(1024) : ToSubclass,key] string Name;
  uint32 BufferSize;
  [ValueMap{"1", "2", "3"} : ToSubclass] uint32 ClockType;
  uint32 DisableRealtimePersistence;
  uint32 FileCount;
  string LocalFilePath;
  uint32 FileMax;
  uint32 FlushTimer;
  string Guid;
  uint32 LogFileMode;
  uint32 MaximumFileSize;
  uint32 MaximumBuffers;
  uint32 MinimumBuffers;
  uint32 Start;
  [read : ToSubclass] uint32 InitStatus;
};

[UMLPackagePath("CIM::Core::CoreElements") : ToSubclass,locale(1033),dynamic : ToInstance,provider("EventTracingManagement") : ToInstance] 
class MSFT_EtwTraceProvider : CIM_LogicalElement
{
  [MaxLen(1024) : ToSubclass] string Name;
  [key] string Guid;
  [key] string AutologgerName;
  [key] string SessionName;
  uint8 Level;
  uint64 MatchAnyKeyword;
  uint64 MatchAllKeyword;
  uint32 Property;
};

[UMLPackagePath("CIM::Core::CoreElements") : ToSubclass,locale(1033),dynamic : ToInstance,provider("EventTracingManagement") : ToInstance] 
class MSFT_EtwTraceSession : CIM_LogicalElement
{
  [MaxLen(1024) : ToSubclass,key] string Name;
  uint32 LogFileMode;
  uint32 BufferSize;
  uint32 MinimumBuffers;
  uint32 MaximumBuffers;
  uint32 FlushTimer;
  [ValueMap{"1", "2", "3"} : ToSubclass] uint32 ClockType;
  uint32 MaximumFileSize;
  string LocalFilePath;
  [implemented] uint32 Send([In] string DestinationFolder,[In] boolean DeleteFile,[Out] string SourceFilePath,[Out] uint32 ErrorCode);
};
