// Copyright (c) 1997-2003 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 CollectionOfMSEs object allows the grouping of ManagedSystemElements for the purposes of associating Settings and Configurations. It is abstract to require further definition and semantic refinement in subclasses. The CollectionOfMSEs object does not carry any state or status information, but only represents a grouping or 'bag' of Elements. For this reason, it is incorrect to subclass groups that have state/status from CollectionOfMSEs - an example is CIM_RedundancyGroup (which is correctly subclassed from LogicalElement).\nCollections typically aggregate 'like' objects, and represent an optimization. Without Collections, one is forced to define individual ElementSetting and ElementConfiguration associations, to tie Settings and Configuration objects to individual ManagedSystemElements. There may be much duplication in assigning the same Setting to multiple objects. In addition, using the Collection object allows the determination that the Setting and Configuration associations are indeed the same for the Collection's members. This information would otherwise be obtained by defining the Collection in a proprietary manner, and then querying the ElementSetting and ElementConfiguration associations to determine if the Collection set is completely covered.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class CIM_CollectionOfMSEs
{
  [Description("The identification of the Collection object. When subclassed, the CollectionID property can be overridden to be a Key property.") : Amended ToSubclass] string CollectionID;
  [Description("A short textual description (one-line string) of the CollectionOfMSEs object.") : Amended ToSubclass] string Caption;
  [Description("A textual description of the CollectionOfMSEs object.") : Amended ToSubclass] string Description;
};

[Description("CIM_CollectedMSEs is a generic association used to establish the members of the grouping object, CollectionOfMSEs.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class CIM_CollectedMSEs
{
  [Description("The grouping or 'bag' object that represents the Collection.") : Amended ToSubclass] CIM_CollectionOfMSEs Ref Collection;
  [Description("The members of the Collection.") : Amended ToSubclass] CIM_ManagedSystemElement Ref Member;
};

[Description("CIM_CollectedCollections is an aggregation association representing that a CollectionOfMSEs may itself be contained in a CollectionOfMSEs.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class CIM_CollectedCollections
{
  [Description("The 'higher level' or parent element in the aggregation.") : Amended ToSubclass] CIM_CollectionOfMSEs Ref Collection;
  [Description("The 'collected' Collection.") : Amended ToSubclass] CIM_CollectionOfMSEs Ref CollectionInCollection;
};

[Description("CollectionSetting represents the association between a CollectionOfMSEs class and the Setting class(es) defined for them.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class CIM_CollectionSetting
{
  [Description("The CollectionOfMSEs.") : Amended ToSubclass] CIM_CollectionOfMSEs Ref Collection;
  [Description("The Setting object associated with the Collection.") : Amended ToSubclass] CIM_Setting Ref Setting;
};

[Description("CIM_LogicalIdentity is an abstract and generic association, indicating that two LogicalElements represent different aspects of the same underlying entity. This relationship conveys what could be defined with multiple inheritance. It is restricted to the 'logical' aspects of a ManagedSystemElement. In most scenarios, the Identity relationship is determined by the equivalence of Keys or some other identifying properties of the related Elements. The association should only be used in well understood scenarios. This is why the association is abstract - allowing more concrete definition and clarification in subclasses. One of the scenarios where this relationship is reasonable is to represent that a Device is both a 'bus' entity and a 'functional' entity. For example, a Device could be both a USB (bus) and a Keyboard (functional) entity.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class CIM_LogicalIdentity
{
  [Key : ToInstance ToSubclass DisableOverride,Description("SystemElement represents one aspect of the LogicalElement.") : Amended ToSubclass] CIM_LogicalElement Ref SystemElement;
  [Key : ToInstance ToSubclass DisableOverride,Description("SameElement represents an alternate aspect of the System entity.") : Amended ToSubclass] CIM_LogicalElement Ref SameElement;
};

[Description("This class represents an association between a managed system element collection and the class representing statistical information about the collection.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_CollectionStatistics
{
  [Description("This property is a reference to the instance that contains statistical information about a collection.") : Amended ToSubclass] CIM_StatisticalInformation Ref Stats;
  [Description("This property is a reference to an instance of a collection of managed system elements.") : Amended ToSubclass] CIM_CollectionOfMSEs Ref Collection;
};

[Description("This event class represents events related to a computer sytem.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_ComputerSystemEvent : __ExtrinsicEvent
{
  [Description("The MachineName property contains the name of the machine for which the event had occurred.") : Amended ToSubclass] string MachineName;
};

[Description("This event class represents events when a computer has begun the process of shutting down.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_ComputerShutdownEvent : Win32_ComputerSystemEvent
{
  [Description("The Type property contains the type of shutdown that was initiated.  This event pertains to both shutdown as well as reboots of the system.") : Amended ToSubclass,Values{"Log Off", "Shutdown or Reboot"} : Amended ToSubclass] uint32 Type;
};

[Description("The Win32_USBHub class represents the management characterisitics of a USB Hub.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_USBHub : CIM_USBHub
{
  [Key : ToInstance ToSubclass DisableOverride,Description("The DeviceID property DeviceID is an address or other identifying information which uniquely identifies the USBHub.") : Amended ToSubclass] string DeviceID;
  [Description("The Name property indicates the name of the USB Hub.") : Amended ToSubclass] string Name;
};

[Description("USBControllerHasHub defines the Hub(s) that are downstream of the USBController.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_ControllerHasHub : CIM_USBControllerHasHub
{
  [Key : ToInstance ToSubclass DisableOverride,Description("The USBController.") : Amended ToSubclass] Win32_USBController Ref Antecedent;
  [Key : ToInstance ToSubclass DisableOverride,Description("The USBHub that is associated with the Controller.") : Amended ToSubclass] Win32_USBHub Ref Dependent;
};

[Description("The Win32_PhysicaMedia class represents any type of documentation or storage medium, such as tapes, CD ROMs, etc.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_PhysicalMedia : CIM_PhysicalMedia
{
  [Key : ToInstance ToSubclass DisableOverride,Description("The Tag property uniquely identifies the physical media in the system.\nExample: \\\\PHYSICALDRIVE0") : Amended ToSubclass] string Tag;
  [Description("The Serial number property is a manufacturer-allocated number used to identify the physicalmedia.  \nExample: WD-WM3493798728 for a disk serial number.") : Amended ToSubclass] string SerialNumber;
};

[Description("The Win32_PhysicalElementsOfDiskDrive association defines the mapping between a disk drive and the physical components that implement it.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_DiskDrivePhysicalMedia : CIM_Realizes
{
  [Key : ToInstance ToSubclass DisableOverride,Description("The Antecedent reference represents the physical component that implements the DiskDrive device.") : Amended ToSubclass] Win32_PhysicalMedia Ref Antecedent;
  [Key : ToInstance ToSubclass DisableOverride,Description("The Dependent reference represents the disk drive.") : Amended ToSubclass] Win32_DiskDrive Ref Dependent;
};

[Description("The Win32_NTDomain class represents a NT Domain. A domain is a single security boundary of a Windows NT computer network. Active Directory is made up of one or more domains. On a standalone workstation, the domain is the computer itself. A domain can span more than one physical location. Every domain has its own security policies and security relationships with other domains.  When multiple domains are connected by trust relationships and share a common schema, configuration, and global catalog, you have a domain tree. Multiple domain trees can be connected together into a forest. All the domains in a forest also share a common schema, configuration, and global catalog.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_NTDomain : CIM_System
{
  [Description("The DomainControllerName property indicates the computer name of the discovered domain controller.") : Amended ToSubclass] string DomainControllerName;
  [Description("The DomainControllerAddress property indicates the address of the discovered domain controller.") : Amended ToSubclass] string DomainControllerAddress;
  [Description("Indicates the type of address specified in DomainControllerAddress. The following valid values are presented in order, DS_INET_ADDRESS = Address is a string IP address (for example, \\\\157.55.94.74) of the domain controller.  DS_NETBIOS_ADDRESS = The NetBIOS name (for example, \\\\phoenix) of the domain controller.") : Amended ToSubclass,Values{"DS_INET_ADDRESS", "DS_NETBIOS_ADDRESS"} : Amended ToSubclass] sint32 DomainControllerAddressType;
  [Description("The GUID of the domain. This member will be zero if the domain controller does not have a Domain GUID (for example, the domain controller is not a Windows 2000 domain controller).") : Amended ToSubclass] string DomainGuid;
  [Description("The DomainName property indicates the name of the domain. The DNS-style name (for example, microsoft.com.) will be returned if available. ") : Amended ToSubclass] string DomainName;
  [Description("The DnsForestName property indicates the name of the domain at the root of the DS tree. The DNS-style name (for example, microsoft.com.) will be returned if available. ") : Amended ToSubclass] string DnsForestName;
  [Description("Directory Service (DS) flag indicating that the domain controller is the Primary Domain Controller (PDC) of the domain.") : Amended ToSubclass] boolean DSPrimaryDomainControllerFlag;
  [Description("Directory Service (DS) flag indicating that the domain controller hosts a write able DS or Security Accounts Manager (SAM).") : Amended ToSubclass] boolean DSWritableFlag;
  [Description("Directory Service (DS) flag indicating that the domain controller is a Global Catalog (GC) server for DnsForestName.") : Amended ToSubclass] boolean DSGlobalCatalogFlag;
  [Description("Directory Service (DS) flag indicating that the domain controller is a directory service server for the domain.") : Amended ToSubclass] boolean DSDirectoryServiceFlag;
  [Description("Directory Service (DS) flag indicating that the domain controller is a Kerberos Key Distribution Center for the domain.") : Amended ToSubclass] boolean DSKerberosDistributionCenterFlag;
  [Description("Directory Service (DS) flag indicating that the domain controller is running the Windows Time service for the domain.") : Amended ToSubclass] boolean DSTimeServiceFlag;
  [Description("Directory Service (DS) flag indicating that the Domain Controller Name is in DNS format (for example, www.mynode.com or 135.5.33.19).") : Amended ToSubclass] boolean DSDnsControllerFlag;
  [Description("Directory Service (DS) flag indicating that the DomainName is in DNS format(for example, www.mynode.com or 135.5.33.19).") : Amended ToSubclass] boolean DSDnsDomainFlag;
  [Description("Directory Service (DS) flag indicating that the DnsForestName is in DNS format (for example, www.mynode.com or 135.5.33.19).") : Amended ToSubclass] boolean DSDnsForestFlag;
  [Description("The DcSiteName property indicates the name of the site where the domain controller is located. This value may be NULL if the domain controller is not in a site (for example, the domain controller is a Windows NT 4.0 domain controller).") : Amended ToSubclass] string DcSiteName;
  [Description("The ClientSiteName property indicates the name of the site where the domain controller is configured to be in. This value may be NULL if the site that the computer named by ComputerName cannot be found (for example, if the DS administrator has not associated the subnet that the computer is in with a valid site).") : Amended ToSubclass] string ClientSiteName;
};

[Description("The Win32_UserInDomain relationship identifies the user accounts associated with a NT domain.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_UserInDomain : CIM_Component
{
  [key : ToInstance ToSubclass DisableOverride,Description("The Antecedent reference represents the domain the user account exists in.") : Amended ToSubclass] Win32_NTDomain Ref GroupComponent;
  [key : ToInstance ToSubclass DisableOverride,Description("The Dependent reference represents the user accounts that exists on the domain.") : Amended ToSubclass] Win32_UserAccount Ref PartComponent;
};

[Description("The Win32_GroupInDomain relationship identifies the group accounts associated with a NT domain.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_GroupInDomain : CIM_Component
{
  [key : ToInstance ToSubclass DisableOverride,Description("The Antecedent reference represents the domain the user account exists in.") : Amended ToSubclass] Win32_NTDomain Ref GroupComponent;
  [key : ToInstance ToSubclass DisableOverride,Description("The Dependent reference represents the group accounts that exists on the domain.") : Amended ToSubclass] Win32_Group Ref PartComponent;
};
