// Copyright (c) 2008 Microsoft Corporation, All Rights Reserved

#pragma autorecover
#pragma classflags(64)
#pragma namespace("\\\\.\\root\\CIMV2")
instance of __namespace{ name="ms_804";};
#pragma namespace("\\\\.\\root\\CIMV2\\ms_804")

[Description("The Win32_ShadowProvider class represents a component, typically a combination of user-mode and kernel/firmware implementation, that will perform the work involved in creating and representing volume shadow copies") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_ShadowProvider : CIM_LogicalElement
{
  [DisplayName("ID") : Amended,Key : ToInstance ToSubclass DisableOverride,Description("The ID property uniquely identifies the shadow provider on the system.") : Amended ToSubclass] string ID;
  [DisplayName("Name") : Amended,Description("The name property is the descriptive name of the provider.") : Amended ToSubclass] string Name;
  [DisplayName("Class ID") : Amended,Description("The CLSID property is the COM class id registered for the shadow provider.") : Amended ToSubclass] string CLSID;
  [DisplayName("Type") : Amended,Description("The Type property indicates to which class the shadow provider belongs.") : Amended ToSubclass,Values{"Unknown", "System", "Software", "Hardware"} : Amended ToSubclass] uint32 Type;
  [DisplayName("Version") : Amended,Description("The Version property provides a textual representation of the shadow provider version.") : Amended ToSubclass] string Version;
  [DisplayName("Version ID") : Amended,Description("The VersionID provides a numeric representation of the shadow provider version.") : Amended ToSubclass] string VersionID;
};

[Description("The Win32_ShadowCopy class is a storage extent that represents a duplicate copy of the original volume at some previous time.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_ShadowCopy : CIM_LogicalElement
{
  [DisplayName("ID") : Amended,Key : ToInstance ToSubclass DisableOverride,Description("The ID property uniquely identifies the shadow copy on the system.") : Amended ToSubclass] string ID;
  [DisplayName("Shadow Set ID") : Amended,Description("The SetID uniquely identifies the shadow copy set to which the shadow belongs.") : Amended ToSubclass] string SetID;
  [DisplayName("Provider ID") : Amended,Description("The ProviderID uniquely identifies the shadow provider that created the shadow.") : Amended ToSubclass] string ProviderID;
  [DisplayName("Count") : Amended,Description("The Count property is the number of shadow copies in the shadow copy set to which this shadow copy belongs.") : Amended ToSubclass] uint32 Count;
  [DisplayName("Device Object") : Amended,Description("The DeviceObject property is the Windows object manager name of the underlying storage device that supports the original volume.") : Amended ToSubclass] string DeviceObject;
  [DisplayName("VolumeName") : Amended,Description("The VolumeName property identifies the original volume for which the shadow copy was taken.") : Amended ToSubclass] string VolumeName;
  [DisplayName("Originating Machine") : Amended,Description("The OriginatingMachine property identifies the machine hosting the original volume.") : Amended ToSubclass] string OriginatingMachine;
  [DisplayName("Service Machine") : Amended,Description("The ServiceMachine property identifies the machine currently servicing the shadow copy.") : Amended ToSubclass] string ServiceMachine;
  [DisplayName("Exposed Name") : Amended,Description("The ExposedName property is the file system name of the shadow copy when it is exposed.  This property might contain a drive letter or mount point.   This property is NULL when the shadow copy is hidden or otherwise not exposed.") : Amended ToSubclass] string ExposedName;
  [DisplayName("Exposed Path") : Amended,Description("The ExposedPath property is the file system path of the shadow copy when it is exposed. This property is NULL when the shadow copy is hidden or otherwise unexposed.") : Amended ToSubclass] string ExposedPath;
  [DisplayName("State") : Amended,Description("The State property describes the current state of the shadow copy") : Amended ToSubclass,Values{"Unknown", "Preparing", "ProcessingPrepare", "Prepared", "ProcessingPrecommit", "Precommitted", "ProcessingCommit", "Committed", "ProcessingPostcommit", "Created", "Aborted", "Deleted", "Count"} : Amended ToSubclass] uint32 State;
  [DisplayName("Persistent") : Amended,Description("The Persistent property indicates whether the shadow copy is persistent across reboots.") : Amended ToSubclass] boolean Persistent;
  [DisplayName("Client Accessible") : Amended,Description("The ClientAccessible property is indicates whether the shadow copy was created by the Windows Previous Versions component.") : Amended ToSubclass] boolean ClientAccessible;
  [DisplayName("No Auto Release") : Amended,Description("The NoAutoRelease property indicates whether the shadow copy is automatically deleted when the shadow copy requestor process ends.  If this property is TRUE, the shadow copy is retained after the requestor process ends.") : Amended ToSubclass] boolean NoAutoRelease;
  [DisplayName("No Writers") : Amended,Description("The NoWriters property indicates whether the shadow copy was created with the involvement of shadow copy writer components.") : Amended ToSubclass] boolean NoWriters;
  [DisplayName("Transportable") : Amended,Description("The Transportable property indicates whether the shadow copy can be surfaced on another machine. If this property is FALSE and the volumes are surfaced locally, it may not be possible to surface them later on a different machine.") : Amended ToSubclass] boolean Transportable;
  [DisplayName("Not Surfaced") : Amended,Description("The shadow copy is not currently in the device namespace of the local machine.") : Amended ToSubclass] boolean NotSurfaced;
  [DisplayName("Hardware Assisted") : Amended,Description("The HardwareAssisted property indicates whether the shadow copy was created by a hardware shadow copy provider.") : Amended ToSubclass] boolean HardwareAssisted;
  [DisplayName("Differential") : Amended,Description("The Differential property indicates whether the shadow copy was created by a differential shadow copy provider. The provider can be implemented in hardware or software.") : Amended ToSubclass] boolean Differential;
  [DisplayName("Plex") : Amended,Description("The Plex property indicates whether the shadow copy was created by a split mirror shadow copy provider.  The provider can be implemented in hardware or software.") : Amended ToSubclass] boolean Plex;
  [DisplayName("Imported") : Amended,Description("The Imported property indicates whether the shadow copy was imported onto this machine using the Import method rather than created using the ShadowCopy create method.") : Amended ToSubclass] boolean Imported;
  [DisplayName("Exposed Remotely") : Amended,Description("The ExposedRemotely property indicates whether the shadow copy is exposed on a remote machine with a network share. If this flag and the ExposedLocally flag is not set, the shadow copy is hidden.") : Amended ToSubclass] boolean ExposedRemotely;
  [DisplayName("Exposed Locally") : Amended,Description("The ExposedLocally property indicates whether the shadow copy is exposed on the local machine with a drive letter or mount point. If this flag and the ExposedRemotely flag is not set, the shadow copy is hidden.") : Amended ToSubclass] boolean ExposedLocally;
  [Description("Creates a shadow copy using the specified context.") : Amended ToSubclass,Values{"Success", "Access denied", "Invalid argument", "Specified volume not found", "Specified volume not supported", "Unsupported shadow copy context", "Insufficient storage", "Volume is in use", "Maximum number of shadow copies reached", "Another shadow copy operation is already in progress", "Shadow copy provider vetoed the operation", "Shadow copy provider not registered", "Shadow copy provider failure", "Unknown error"} : Amended ToSubclass] uint32 Create([in,Description("This parameter is the volume that is used for the shadow copy. This volume is sometimes referred to as the 'original' volume.  This parameter can be specified as a volume drive letter, mount point or volume GUID name.") : Amended ToSubclass] string Volume,[in,Description("This parameter is the context that the provider will use when creating the shadow.") : Amended ToSubclass] string Context,[out] string ShadowID);
  [Description("Reverts the original storage volume to this shadow copy. After Revert is done, the original volume will be identical to this shadow copy and every newer shadow copy will be deleted. You cannot cancel or undo the revert operation - any data written to the original volume after the shadow copy was created will be lost!") : Amended ToSubclass,Values{"Success", "Access denied", "Invalid argument", "Specified volume not supported", "Volume is in use", "Another shadow copy operation is already in progress", "Shadow copy provider vetoed the operation", "Shadow copy provider not registered", "Shadow copy provider failure", "Unknown error"} : Amended ToSubclass] uint32 Revert([in,Description("This parameter is used to force the original volume to dismount before starting the revert operation. Forcing a volume to dismount forces all open handles to files on the volume to be closed. Applications holding open handles will likely be returned an error code on subsequent operations performed on the handles. If the flag is set to false and some application has an open handle to a file on the volume, then revert will fail with 'Volume is in use'.") : Amended ToSubclass] boolean ForceDismount);
};

[Description("The association between the volume for which a shadow copy is made and the volume to which the differential data is written.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_ShadowStorage
{
  [DisplayName("Volume") : Amended,Key : ToInstance ToSubclass DisableOverride,Description("The original volume") : Amended ToSubclass] Win32_Volume Ref Volume;
  [DisplayName("Differential Volume") : Amended,Key : ToInstance ToSubclass DisableOverride,Description("The differential volume") : Amended ToSubclass] Win32_Volume Ref DiffVolume;
  [DisplayName("Maximum Space") : Amended,Description("Maximum space on differential area volume") : Amended ToSubclass] uint64 MaxSpace;
  [DisplayName("Allocated Space") : Amended,Description("Allocated space on differential area volume") : Amended ToSubclass] uint64 AllocatedSpace;
  [DisplayName("Used Space") : Amended,Description("Used space on differential area volume") : Amended ToSubclass] uint64 UsedSpace;
  [Description("Creates differential area storage for the specified Volume on the specified DiffVolume with the specified MaxSpace.") : Amended ToSubclass,Values{"Success", "Access denied", "Invalid argument", "Specified volume not found", "Specified volume not supported", "Shadow copy storage area already exists", "Maximum number of shadow storage areas reached", "Shadow copy provider vetoed the operation", "Shadow copy provider not registered", "Shadow copy provider failure", "Unknown error", "Insufficient storage available"} : Amended ToSubclass] uint32 Create([in,Description("This parameter is the volume that is to be shadowed.  This parameter can be specified as a volume drive letter, mount point or volume GUID name.") : Amended ToSubclass] string Volume,[in,Description("This parameter is the volume to be used to store the shadow differential area.  If this paramter is not supplied the specified Volume will be used to store the differential area.  This parameter can be specified as a volume drive letter, mount point or volume GUID name.") : Amended ToSubclass] string DiffVolume,[in,Description("This parameter is the initial maximum size of the differential area.") : Amended ToSubclass] UINT64 MaxSpace);
};

[Description("The association between a shadow copy and the provider that created the shadow copy") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_ShadowBy : CIM_Dependency
{
  [DisplayName("Provider") : Amended,Key : ToInstance ToSubclass DisableOverride,Description("The shadow copy provider") : Amended ToSubclass] Win32_ShadowProvider Ref Antecedent;
  [DisplayName("Shadow Copy") : Amended,Key : ToInstance ToSubclass DisableOverride,Description("The shadow copy") : Amended ToSubclass] Win32_ShadowCopy Ref Dependent;
};

[Description("The association between a shadow copy and the volume for which the shadow copy was created.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_ShadowFor : CIM_Dependency
{
  [DisplayName("Volume") : Amended,Key : ToInstance ToSubclass DisableOverride,Description("The original volume") : Amended ToSubclass] Win32_Volume Ref Antecedent;
  [DisplayName("Shadow Copy") : Amended,Key : ToInstance ToSubclass DisableOverride,Description("The shadow copy") : Amended ToSubclass] Win32_ShadowCopy Ref Dependent;
};

[Description("The association between a shadow copy and the volume on which differential data is written.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_ShadowOn : CIM_Dependency
{
  [DisplayName("Volume") : Amended,Key : ToInstance ToSubclass DisableOverride,Description("The original volume") : Amended ToSubclass] Win32_Volume Ref Antecedent;
  [DisplayName("Shadow Copy") : Amended,Key : ToInstance ToSubclass DisableOverride,Description("The shadow copy") : Amended ToSubclass] Win32_ShadowCopy Ref Dependent;
};

[Description("The association between a shadow copy provider and a supported volume.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_ShadowVolumeSupport : CIM_Dependency
{
  [DisplayName("Provider") : Amended,Key : ToInstance ToSubclass DisableOverride,Description("The shadow copy provider") : Amended ToSubclass] Win32_ShadowProvider Ref Antecedent;
  [DisplayName("Volume") : Amended,Key : ToInstance ToSubclass DisableOverride,Description("Volume supported by provider") : Amended ToSubclass] Win32_Volume Ref Dependent;
};

[Description("The association between a shadow copy provider and a volume supported for differential storage area.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_ShadowDiffVolumeSupport : CIM_Dependency
{
  [DisplayName("Provider") : Amended,Key : ToInstance ToSubclass DisableOverride,Description("The shadow copy provider") : Amended ToSubclass] Win32_ShadowProvider Ref Antecedent;
  [DisplayName("Volume") : Amended,Key : ToInstance ToSubclass DisableOverride,Description("Volume supported by provider") : Amended ToSubclass] Win32_Volume Ref Dependent;
};

[Description("The Win32_ShadowContext class is used to specify how a shadow copy is to be created, queried, or deleted and the degree of writer involvment.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_ShadowContext : CIM_Setting
{
  [DisplayName("Name") : Amended,Key : ToInstance ToSubclass DisableOverride,Description("The name of the context") : Amended ToSubclass] string Name;
  [DisplayName("Persistent") : Amended,Description("The Persistent property indicates whether the shadow copy is persistent across reboots.") : Amended ToSubclass] boolean Persistent;
  [DisplayName("Client Accessible") : Amended,Description("The ClientAccessible property is indicates whether the shadow copy was created by the Windows Previous Versions component.") : Amended ToSubclass] boolean ClientAccessible;
  [DisplayName("No Auto Release") : Amended,Description("The NoAutoRelease property indicates whether the shadow copy is automatically deleted when the shadow copy requestor process ends.  If this property is TRUE, the shadow copy is retained after the requestor process ends.") : Amended ToSubclass] boolean NoAutoRelease;
  [DisplayName("No Writers") : Amended,Description("The NoWriters property indicates whether the shadow copy was created with the involvement of shadow copy writer components.") : Amended ToSubclass] boolean NoWriters;
  [DisplayName("Transportable") : Amended,Description("The Transportable property indicates whether the shadow copy can be surfaced on another machine. If this property is FALSE and the volumes are surfaced locally, it may not be possible to surface them later on a different machine.") : Amended ToSubclass] boolean Transportable;
  [DisplayName("Not Surfaced") : Amended,Description("The shadow copy is not currently in the device namespace of the local machine.") : Amended ToSubclass] boolean NotSurfaced;
  [DisplayName("Hardware Assisted") : Amended,Description("The HardwareAssisted property indicates whether the shadow copy was created by a hardware shadow copy provider.") : Amended ToSubclass] boolean HardwareAssisted;
  [DisplayName("Differential") : Amended,Description("The Differential property indicates whether the shadow copy was created by a differential shadow copy provider. The provider can be implemented in hardware or software.") : Amended ToSubclass] boolean Differential;
  [DisplayName("Plex") : Amended,Description("The Plex property indicates whether the shadow copy was created by a split mirror shadow copy provider.  The provider can be implemented in hardware or software.") : Amended ToSubclass] boolean Plex;
  [DisplayName("Imported") : Amended,Description("The Imported property indicates whether the shadow copy was imported onto this machine using the Import method rather than created using the ShadowCopy create method.") : Amended ToSubclass] boolean Imported;
  [DisplayName("Exposed Remotely") : Amended,Description("The ExposedRemotely property indicates whether the shadow copy is exposed on a remote machine with a network share. If this flag and the ExposedLocally flag is not set, the shadow copy is hidden.") : Amended ToSubclass] boolean ExposedRemotely;
  [DisplayName("Exposed Locally") : Amended,Description("The ExposedLocally property indicates whether the shadow copy is exposed on the local machine with a drive letter or mount point. If this flag and the ExposedRemotely flag is not set, the shadow copy is hidden.") : Amended ToSubclass] boolean ExposedLocally;
};
#pragma namespace("\\\\.\\root\\wmi")
instance of __namespace{ name="ms_804";};
#pragma namespace("\\\\.\\root\\wmi\\ms_804")

[Description("VSS tracing provider") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class VssTracingProvider : EventTrace
{
};

[Description("VSS tracing event") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class VssTracingEventClass : VssTracingProvider
{
};

[Description("VSS tracing event type") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804)] 
class VssTracingEventClass_VssTracingEventTypeClass : VssTracingEventClass
{
  [Description("Source File Name") : Amended ToSubclass] string SourceFileName;
  [Description("Source File Alias") : Amended ToSubclass] string SourceFileAlias;
  [Description("Line Number") : Amended ToSubclass] uint32 LineNumber;
  [Description("Indentation") : Amended ToSubclass] uint32 Indent;
  [Description("Module Index") : Amended ToSubclass] uint32 ModuleIndex;
  [Description("Function Name") : Amended ToSubclass] string FunctionName;
  [Description("Message Description") : Amended ToSubclass] string MessageDescription;
  [Description("Text") : Amended ToSubclass] string Text;
};
