//************************************************************************** //* //* Copyright (c) 2000 Microsoft Corporation //* //* File: ClusWMI.mof //* //************************************************************************** #pragma namespace("\\\\.\\ROOT") instance of __NameSpace { Name = "MSCluster" ; }; #pragma namespace ("\\\\.\\Root\\MSCluster") instance of __Win32Provider as $InstanceProv { Name = "MS_CLUSTER_PROVIDER" ; CLSID = "{598065EA-EDC9-4b2c-913B-5104D04D098A}" ; ImpersonationLevel = 1 ; PerUserInitialization = TRUE ; // This insures that we get the most accurate information. Hostingmodel="NetworkServicehost"; }; instance of __Win32Provider as $EventProv { Name = "Cluster Event Provider" ; CLSID = "{92863246-4EDE-4eff-B606-79C1971DB230}" ; ImpersonationLevel = 1 ; PerUserInitialization = TRUE ; // This insures that we get the most accurate information. Hostingmodel="NetworkServicehost"; }; instance of __Win32Provider as $ClassProv { Name = "MS_CLUSTER_CLASS_PROVIDER" ; CLSID = "{6A52C339-DCB0-4682-8B1B-02DE2C436A6D}" ; ImpersonationLevel = 1 ; PerUserInitialization = TRUE ; // This insures that we get the most accurate information. Hostingmodel="NetworkServicehost"; }; // ================================================================== // CIM_ManagedSystemElement // ================================================================== [Abstract , Locale (0x409) : ToInstance , Description ( "CIM_ManagedSystemElement is the base class for the System Element " "hierarchy. Membership Criteria: Any distinguishable component of a " "System is a candidate for inclusion in this class. Examples: software " "components, such as files; and devices, such as disk drives and " "controllers, and physical components such as chips and cards." ), UUID ("{C9D86C80-ED46-4377-8360-FC9B8A9F0C64}") ] class CIM_ManagedSystemElement { [MaxLen (64) , Description ( "The Caption property is a short textual description (one-line string) " "of the object." ) ] string Caption ; [Description ( "The Description property provides a textual description of the object." ) ] string Description ; [Description ( "A datetime value indicating when the object was installed. A lack of a " "value does not indicate that the object is not installed." ) , MappingStrings { "MIF.DMTF|ComponentID|001.5" } ] datetime InstallDate ; [MaxLen (256) , Description ( "The Name property defines the label by which the object is known. When " "subclassed, the Name property can be overridden to be a Key property." ) ] string Name ; [MaxLen (10) , Description ( "A string indicating the current status of the object. Various " "operational and non-operational statuses are defined. Operational " "statuses are \"OK\", \"Degraded\", \"Stressed\" and \"Pred Fail\". " "\"Stressed\" indicates that the Element is functioning, but needs " "attention. Examples of \"Stressed\" states are overload, overheated, " "etc. The condition \"Pred Fail\" (failure predicted) indicates that an " "Element is functioning properly but predicting a failure in the near " "future. An example is a SMART-enabled hard drive. Non-operational " "statuses can also be specified. These are \"Error\", \"NonRecover\", " "\"Starting\", \"Stopping\" and \"Service\". \"NonRecover\" indicates " "that a non-recoverable error has occurred. \"Service\" describes an " "Element being configured, maintained or cleaned, or otherwise " "administered. This status could apply during mirror-resilvering of a " "disk, reload of a user permissions list, or other administrative task. " "Not all such work is on-line, yet the Element is neither \"OK\" nor in " "one of the other states." ) , ValueMap { "OK", "Error", "Degraded", "Unknown", "Pred Fail", "Starting", "Stopping", "Service", "Stressed", "NonRecover" } ] string Status ; }; //*** class CIM_ManagedSystemElement // ================================================================== // CIM_LogicalElement // ================================================================== [Abstract , Locale (0x409) : ToInstance , Description ( "CIM_LogicalElement is a base class for all the components of a System " "that represent abstract system components, such as Files, Processes, or " "system capabilities in the form of Logical Devices." ), UUID ("{F6D42C79-DC86-4847-80A7-36CA4A5E36C8}") ] class CIM_LogicalElement : CIM_ManagedSystemElement { }; //*** class CIM_LogicalElement // ================================================================== // CIM_System // ================================================================== [Abstract , Locale (0x409) : ToInstance , Description ( "A CIM_System is a LogicalElement that aggregates an enumerable set of " "Managed System Elements. The aggregation operates as a functional whole." " Within any particular subclass of System, there is a well-defined list " "of Managed System Element classes whose instances must be aggregated." ), UUID ("{A4D42690-0286-4369-B95C-7169809CC3EC}") ] class CIM_System : CIM_LogicalElement { [CIM_KEY , MaxLen (256) , Description ( "CreationClassName indicates the name of the class or the subclass used " "in the creation of an instance. When used with the other key properties " "of this class, this property allows all instances of this class and its " "subclasses to be uniquely identified." ) ] string CreationClassName ; [Key , MaxLen (256) , Override ("Name") , Description ( "The inherited Name serves as key of a System instance in an enterprise " "environment." ) ] string Name ; [MaxLen (64) , Description ( "The System object and its derivatives are Top Level Objects of CIM. " "They provide the scope for numerous components. Having unique System " "keys is required. A heuristic can be defined in individual System " "subclasses to attempt to always generate the same System Name Key. The " "NameFormat property identifies how the System name was generated, using " "the subclass' heuristic." ) ] string NameFormat ; [MaxLen (256) , Description ( "A string that provides information on how the primary system owner can " "be reached (e.g. phone number, email address, ...)." ) , MappingStrings { "MIF.DMTF|General Information|001.3" } ] string PrimaryOwnerContact ; [MaxLen (64) , Description ("The name of the primary system owner.") , MappingStrings { "MIF.DMTF|General Information|001.4" } ] string PrimaryOwnerName ; [Description ( "An array (bag) of strings that specify the roles this System plays in " "the IT-environment. Subclasses of System may override this property to " "define explicit Roles values. Alternately, a Working Group may describe " "the heuristics, conventions and guidelines for specifying Roles. For " "example, for an instance of a networking system, the Roles property " "might contain the string, 'Switch' or 'Bridge'." ) ] string Roles[] ; }; //*** class CIM_System // =================================================================== // CIM_ComputerSystem // =================================================================== [Abstract , Locale (0x409) : ToInstance , Description ( "A class derived from System that is a special collection of " "ManagedSystemElements. This collection provides compute capabilities " "and serves as aggregation point to associate one or more of the " "following elements: FileSystem, OperatingSystem, Processor and Memory (" "Volatile and/or NonVolatile Storage)." ), UUID ("{DB2EBD10-5113-44a1-96E6-52A4FB4210E1}") ] class CIM_ComputerSystem : CIM_System { [Override ("NameFormat") , Description ( "The ComputerSystem object and its derivatives are Top Level Objects of " "CIM. They provide the scope for numerous components. Having unique " "System keys is required. A heuristic is defined to create the " "ComputerSystem Name to attempt to always generate the same Name, " "independent of discovery protocol. This prevents inventory and " "management problems where the same asset or entity is discovered " "multiple times, but can not be resolved to a single object. Use of the " "heuristic is optional, but recommended.\n\nThe NameFormat property " "identifies how the ComputerSystem Name is generated, using a heuristic. " "The heuristic is outlined, in detail, in the CIM V2 System Model spec. " "It assumes that the documented rules are traversed in order, to " "determine and assign a Name. The NameFormat Values list defines the " "precedence order for assigning the ComputerSystem Name. Several rules " "do map to the same Value.\n\nNote that the ComputerSystem Name " "calculated using the heuristic is the System's key value. Other names " "can be assigned and used for the ComputerSystem, that better suit a " "business, using Aliases." ) , ValueMap { "Other", "IP", "Dial", "HID", "NWA", "HWA", "X25", "ISDN", "IPX", "DCC", "ICD", "E.164", "SNA", "OID/OSI" } ] string NameFormat ; [MaxLen (256) , ArrayType ("Indexed") , Description ( "OtherIdentifyingInfo captures additional data, beyond System Name " "information, that could be used to identify a ComputerSystem. One " "example would be to hold the Fibre Channel World-Wide Name (WWN) of a " "node. Note that if only the Fibre Channel name is available and is " "unique (able to be used as the System key), then this property would be " "NULL and the WWN would become the System key, its data placed in the " "Name property." ) , ModelCorrespondence { "CIM_ComputerSystem.IdentifyingDescriptions" } ] string OtherIdentifyingInfo[] ; [ArrayType ("Indexed") , Description ( "An array of free-form strings providing explanations and details behind " "the entries in the OtherIdentifyingInfo array. Note, each entry of this " "array is related to the entry in OtherIdentifyingInfo that is located " "at the same index." ) , ModelCorrespondence { "CIM_ComputerSystem.OtherIdentifyingInfo" } ] string IdentifyingDescriptions[] ; [Description ( "Enumeration indicating whether the ComputerSystem is a special-purpose " "System (ie, dedicated to a particular use), versus being 'general " "purpose'. For example, one could specify that the System is dedicated " "to \"Print\" (value=11) or acts as a \"Hub\" (value=8)." ) , Values { "Not Dedicated", "Unknown", "Other", "Storage", "Router", "Switch", "Layer 3 Switch", "Central Office Switch", "Hub", "Access Server", "Firewall", "Print", "I/O", "Web Caching" } ] uint16 Dedicated[] ; }; //*** class CIM_ComputerSystem // ============================================================================= // CIM_UnitaryComputerSystem // ============================================================================= [Abstract , Locale (0x409) : ToInstance , Description ( "A class derived from ComputerSystem that represents a Desktop, " "Mobile, NetPC, Server or other type of a single node Computer " "System." ), UUID ("{903487A9-1E55-4489-9389-4CEE0AE6B236}") ] class CIM_UnitaryComputerSystem : CIM_ComputerSystem { [Description ( "This object contains the data needed to find either the " "initial load device (its key) or the boot service to " "request the operating system to start up. In addition, " "the load parameters (ie, a pathname and parameters) " "may also be specified." ) ] string InitialLoadInfo[]; [Description ( "This object contains the data identifying either the " "initial load device (its key) or the boot service that " "requested the last operating system load. In addition, " "the load parameters (ie, a pathname and parameters) " "may also be specified." ) , MappingStrings { "MIB.IETF|HOST-RESOURCES-MIB.hrSystemInitialLoadDevice", "MIB.IETF|HOST-RESOURCES-MIB.hrSystemInitialLoadParameters" } ] string LastLoadInfo; [Description ( "If enabled (value = 4), the UnitaryComputerSystem can be " "reset via hardware (e.g. the power and reset buttons). If " "disabled (value = 3), hardware reset is not allowed. In " "addition to Enabled and Disabled, other Values for the " "property are also defined - \"Not Implemented\" (5), " "\"Other\" (1) and \"Unknown\" (2)." ) , ValueMap { "1", "2", "3", "4", "5" } , Values { "Other", "Unknown", "Disabled", "Enabled", "Not Implemented" } , MappingStrings { "MIF.DMTF|System Hardware Security|001.4" } ] uint16 ResetCapability; [Description ( "Boolean indicating that the ComputerSystem, with its " "running OperatingSystem, supports power management. This " "boolean does not indicate that power management features are " "currently enabled, or if enabled, what features are " "supported. Refer to the PowerManagementCapabilities array " "for this information. If this boolean is false, the integer " "value 1 for the string, \"Not Supported\", should be the " "only entry in the PowerManagementCapabilities array." ) ] boolean PowerManagementSupported; [Description ( "Indicates the specific power-related capabilities of a " "ComputerSystem and its associated running OperatingSystem. " "The values, 0=\"Unknown\", 1=\"Not Supported\", and " "2=\"Disabled\" are self-explanatory. " "The value, 3=\"Enabled\" indicates that the power management " "features are currently enabled but the exact feature set " "is unknown or the information is unavailable. " "\"Power Saving Modes Entered Automatically\" (4) describes " "that a system can change its power state based on usage or " "other criteria. \"Power State Settable\" (5) indicates that " "the SetPowerState method is supported. \"Power Cycling " "Supported\" (6) indicates that the SetPowerState method " "can be invoked with the PowerState input variable set to 5 (" "\"Power Cycle\"). \"Timed Power On Supported\" (7) indicates " "that the SetPowerState method can be invoked with the Power" "State input variable set to 5 (\"Power Cycle\") and the Time " "parameter set to a specific date and time, or interval, " "for power-on." ) , Values { "Unknown", "Not Supported", "Disabled", "Enabled", "Power Saving Modes Entered Automatically", "Power State Settable", "Power Cycling Supported", "Timed Power On Supported" } , MappingStrings { "MIF.DMTF|System Power Controls|001.2" } ] uint16 PowerManagementCapabilities[]; [Description ( "Indicates the current power state of the ComputerSystem and " "its associated OperatingSystem. Regarding the Power Save " "states, these are defined as follows: Value 4 (\"Power Save " "- Unknown\") indicates that the System is known to be in a " "power save mode, but its exact status in this mode is " "unknown; 2 (\"Power Save - Low Power Mode\") indicates that " "the System is in a power save state but still functioning, " "and may exhibit degraded performance; 3 (\"Power Save - " "Standby\") describes that the System is not functioning but " "could be brought to full power 'quickly'; and value 7 " "(\"Power Save - Warning\") indicates that the Computer" "System is in a warning state, though also in a power save " "mode." ) , Values { "Unknown", "Full Power", "Power Save - Low Power Mode", "Power Save - Standby", "Power Save - Unknown", "Power Cycle", "Power Off", "Power Save - Warning" } ] uint16 PowerState ; //*********** //* Methods * //*********** [Description ( "SetPowerState defines the desired power state of a " "ComputerSystem and its running OperatingSystem, and when " "the system should be put into that state. The PowerState " "parameter is specified as one of the valid integer values " "defined for the property, PowerState. The Time " "parameter (for all state changes but 5, \"Power Cycle\") " "indicates when the power state should be set, either as " "a regular date-time value or as an interval value (where " "the interval begins when the method invocation is received). " "When the PowerState parameter is equal to 5, \"Power Cycle\", " "the Time parameter indicates when the system should power on " "again. Power off is immediate. SetPowerState should " "return 0 if successful, 1 if the specified State and Time " "request is not supported, and some other value if any " "other error occurred." ) ] uint32 SetPowerState( [IN] uint16 PowerState, [IN] datetime Time ); }; //*** class CIM_UnitaryComputerSystem // =================================================================== // CIM_LogicalDevice // =================================================================== [Abstract , Locale (0x409) : ToInstance , Description ( "An abstraction or emulation of a hardware entity, that may or may not " "be Realized in physical hardware. Any characteristics of a " "LogicalDevice that are used to manage its operation or configuration " "are contained in, or associated with, the LogicalDevice object. " "Examples of the operational properties of a Printer would be paper " "sizes supported, or detected errors. Examples of the configuration " "properties of a Sensor Device would be threshold settings. Various " "configurations could exist for a LogicalDevice. These configurations " "could be contained in Setting objects and associated with the " "LogicalDevice." ), UUID ("{79995733-3548-4102-98F0-8A2D65CCE350}") ] class CIM_LogicalDevice : CIM_LogicalElement { [Propagated ("CIM_System.CreationClassName") , CIM_KEY, MaxLen (256) , Description ("The scoping System's CreationClassName.") ] string SystemCreationClassName ; [Propagated ("CIM_System.Name") , Key, MaxLen (256) , Description ("The scoping System's Name.") ] string SystemName ; [CIM_KEY, MaxLen (256) , Description ( "CreationClassName indicates the name of the class or the subclass used " "in the creation of an instance. When used with the other key properties " "of this class, this property allows all instances of this class and its " "subclasses to be uniquely identified." ) ] string CreationClassName ; [Key, MaxLen (64) , Description ( "An address or other identifying information to uniquely name the " "LogicalDevice." ) ] string DeviceID ; [Description ( "Boolean indicating that the Device can be power managed - ie, put into " "a power save state. This boolean does not indicate that power " "management features are currently enabled, or if enabled, what features " "are supported. Refer to the PowerManagementCapabilities array for this " "information. If this boolean is false, the integer value 1, for the " "string, \"Not Supported\", should be the only entry in the " "PowerManagementCapabilities array." ) ] boolean PowerManagementSupported ; [Description ( "Indicates the specific power-related capabilities of a LogicalDevice. " "The array values, 0=\"Unknown\", 1=\"Not Supported\" and 2=\"Disabled\" " "are self-explanatory. The value, 3=\"Enabled\" indicates that the power " "management features are currently enabled but the exact feature set is " "unknown or the information is unavailable. \"Power Saving Modes Entered " "Automatically\" (4) describes that a Device can change its power state " "based on usage or other criteria. \"Power State Settable\" (5) " "indicates that the SetPowerState method is supported. \"Power Cycling " "Supported\" (6) indicates that the SetPowerState method can be invoked " "with the PowerState input variable set to 5 (\"Power Cycle\"). \"Timed " "Power On Supported\" (7) indicates that the SetPowerState method can be " "invoked with the PowerState input variable set to 5 (\"Power Cycle\") " "and the Time parameter set to a specific date and time, or interval, " "for power-on." ) , Values { "Unknown", "Not Supported", "Disabled", "Enabled", "Power Saving Modes Entered Automatically", "Power State Settable", "Power Cycling Supported", "Timed Power On Supported" } ] uint16 PowerManagementCapabilities[] ; [Description ( "The availability and status of the Device. For example, the " "Availability property indicates that the Device is running and has full " "power (value=3), or is in a warning (4), test (5), degraded (10) or " "power save state (values 13-15 and 17). Regarding the Power Save states," " these are defined as follows: Value 13 (\"Power Save - Unknown\") " "indicates that the Device is known to be in a power save mode, but its " "exact status in this mode is unknown; 14 (\"Power Save - Low Power " "Mode\") indicates that the Device is in a power save state but still " "functioning, and may exhibit degraded performance; 15 (\"Power Save - " "Standby\") describes that the Device is not functioning but could be " "brought to full power 'quickly'; and value 17 (\"Power Save - Warning\")" " indicates that the Device is in a warning state, though also in a " "power save mode." ) , ValueMap { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19" } , Values { "Other", "Unknown", "Running/Full Power", "Warning", "In Test", "Not Applicable", "Power Off", "Off Line", "Off Duty", "Degraded", "Not Installed", "Install Error", "Power Save - Unknown", "Power Save - Low Power Mode", "Power Save - Standby", "Power Cycle", "Power Save - Warning", "Paused", "Not Ready" } , MappingStrings { "MIF.DMTF|Operational State|004.5", "MIB.IETF|HOST-RESOURCES-MIB.hrDeviceStatus", "MIF.DMTF|Host Device|001.5" } ] uint16 Availability ; [Description ( "StatusInfo is a string indicating whether the LogicalDevice is in an " "enabled (value = 3), disabled (value = 4) or some other (1) or unknown (" "2) state. If this property does not apply to the LogicalDevice, the " "value, 5 (\"Not Applicable\"), should be used." ) , ValueMap { "1", "2", "3", "4", "5" } , Values { "Other", "Unknown", "Enabled", "Disabled", "Not Applicable" } , MappingStrings { "MIF.DMTF|Operational State|004.3" } ] uint16 StatusInfo ; [Description ( "LastErrorCode captures the last error code reported by the " "LogicalDevice." ) ] uint32 LastErrorCode ; [Description ( "ErrorDescription is a free-form string supplying more information about " "the error recorded in LastErrorCode, and information on any corrective " "actions that may be taken." ) ] string ErrorDescription ; [Description ( "ErrorCleared is a boolean property indicating that the error reported " "in LastErrorCode is now cleared." ) ] boolean ErrorCleared ; [MaxLen (256) , ArrayType ("Indexed") , Description ( "OtherIdentifyingInfo captures additional data, beyond DeviceID " "information, that could be used to identify a LogicalDevice. One " "example would be to hold the OperatingSystem's user friendly name for " "the Device in this property." ) , ModelCorrespondence { "CIM_LogicalDevice.IdentifyingDescriptions" } ] string OtherIdentifyingInfo[] ; [Description ( "The number of consecutive hours that this Device has been powered, " "since its last power cycle." ) , Units ("Hours") , Counter ] uint64 PowerOnHours ; [Description ( "The total number of hours that this Device has been powered." ) , Units ("Hours") , Counter ] uint64 TotalPowerOnHours ; [ArrayType ("Indexed") , Description ( "An array of free-form strings providing explanations and details behind " "the entries in the OtherIdentifyingInfo array. Note, each entry of this " "array is related to the entry in OtherIdentifyingInfo that is located " "at the same index." ) , ModelCorrespondence { "CIM_LogicalDevice.OtherIdentifyingInfo" } ] string IdentifyingDescriptions[] ; //*********** //* Methods * //*********** [Description ( "SetPowerState defines the desired power state for a LogicalDevice and " "when a Device should be put into that state. The desired power state is " "specified by setting the PowerState parameter to one of the following " "integer values: 1=\"Full Power\", 2=\"Power Save - Low Power Mode\", " "3=\"Power Save - Standby\", 4=\"Power Save - Other\", 5=\"Power Cycle\" " "or 6=\"Power Off\". The Time parameter (for all state changes but 5, " "\"Power Cycle\") indicates when the power state should be set, either " "as a regular date-time value or as an interval value (where the " "interval begins when the method invocation is received). When the " "PowerState parameter is equal to 5, \"Power Cycle\", the Time parameter " "indicates when the Device should power on again. Power off is immediate." " SetPowerState should return 0 if successful, 1 if the specified " "PowerState and Time request is not supported, and some other value if " "any other error occurred. In a subclass, the set of possible return " "codes could be specified, using a ValueMap qualifier on the method. The " "strings to which the ValueMap contents are 'translated' may also be " "specified in the subclass as a Values array qualifier." ) ] uint32 SetPowerState( [IN, ValueMap {"1", "2", "3", "4", "5", "6"}, Values { "Full Power", "Power Save - Low Power Mode", "Power Save - Standby", "Power Save - Other", "Power Cycle", "Power Off" } ] uint16 PowerState, [IN] datetime Time ) ; [Description ( "Requests a reset of the LogicalDevice. The return value should be 0 if " "the request was successfully executed, 1 if the request is not " "supported and some other value if an error occurred. In a subclass, the " "set of possible return codes could be specified, using a ValueMap " "qualifier on the method. The strings to which the ValueMap contents are " "'translated' may also be specified in the subclass as a Values array " "qualifier." ) ] uint32 Reset() ; [Description ( "Requests that the LogicalDevice be enabled (\"Enabled\" input parameter " "= TRUE) or disabled (= FALSE). If successful, the Device's StatusInfo " "property should also reflect the desired state (enabled/disabled). The " "return code should be 0 if the request was successfully executed, 1 if " "the request is not supported and some other value if an error occurred. " "In a subclass, the set of possible return codes could be specified, " "using a ValueMap qualifier on the method. The strings to which the " "ValueMap contents are 'translated' may also be specified in the " "subclass as a Values array qualifier." ) ] uint32 EnableDevice( [IN] boolean Enabled ) ; }; //*** class CIM_LogicalDevice // ================================================================== // CIM_Service // ================================================================== [Abstract , Locale (0x409) : ToInstance , Description ( "A CIM_Service is a Logical Element that contains the information " "necessary to represent and manage the functionality provided by a " "Device and/or SoftwareFeature. A Service is a general-purpose object " "to configure and manage the implementation of functionality. It is " "not the functionality itself." ), UUID ("{FCFE8148-E035-4bf9-88ED-494793B152BC}") ] class CIM_Service : CIM_LogicalElement { [CIM_KEY, MaxLen (256) , Description ( "CreationClassName indicates the name of the class or the subclass used " "in the creation of an instance. When used with the other key properties " "of this class, this property allows all instances of this class and its " "subclasses to be uniquely identified." ) ] string CreationClassName ; [Override ("Name") , Key, MaxLen (256) , Description ( "The Name property uniquely identifies the Service and provides an " "indication of the functionality that is managed. This functionality is " "described in more detail in the object's Description property." ) ] string Name ; [MaxLen (10) , Description ( "StartMode is a string value indicating whether the Service is " "automatically started by a System, Operating System, etc. or only " "started upon request." ) , ValueMap { "Automatic", "Manual" } ] string StartMode ; [Description ( "Started is a boolean indicating whether the Service has been started (" "TRUE), or stopped (FALSE)." ) ] boolean Started ; [Propagated ("CIM_System.CreationClassName") , CIM_KEY, MaxLen (256) , Description ("The scoping System's CreationClassName.") ] string SystemCreationClassName ; [Propagated ("CIM_System.Name") , Key, MaxLen (256) , Description ("The scoping System's Name.") ] string SystemName ; //*********** //* Methods * //*********** [Description ( "The StartService method places the Service in the started state. It " "returns an integer value of 0 if the Service was successfully started, " "1 if the request is not supported and any other number to indicate an " "error. In a subclass, the set of possible return codes could be " "specified, using a ValueMap qualifier on the method. The strings to " "which the ValueMap contents are 'translated' may also be specified in " "the subclass as a Values array qualifier." ) ] uint32 StartService() ; [Description ( "The StopService method places the Service in the stopped state. It " "returns an integer value of 0 if the Service was successfully stopped, " "1 if the request is not supported and any other number to indicate an " "error. In a subclass, the set of possible return codes could be " "specified, using a ValueMap qualifier on the method. The strings to " "which the ValueMap contents are 'translated' may also be specified in " "the subclass as a Values array qualifier." ) ] uint32 StopService() ; }; //*** class CIM_Service // =================================================================== // CIM_ClusteringService // =================================================================== [Abstract , Locale (0x409) : ToInstance , UUID ("{CA0A869F-8876-4be7-AADF-A427F7733415}") : ToInstance ] class CIM_ClusteringService : CIM_Service { //*********** //* Methods * //*********** uint32 AddNode( [IN] CIM_ComputerSystem Ref CS ) ; uint32 EvictNode( [IN] CIM_ComputerSystem Ref CS ) ; }; //*** class CIM_ClusteringService // ================================================================== // CIM_Dependency // ================================================================== [Association , Abstract , Locale (0x409) : ToInstance , Description ( "CIM_Dependency is a generic association used to establish dependency " "relationships between objects." ), UUID ("{26BB4D6A-0473-494e-A864-5CAEEB9AB330}") ] class CIM_Dependency { [Key , Description ( "Antecedent represents the independent object in this association." ) ] CIM_ManagedSystemElement REF Antecedent ; [Key , Description ( "Dependent represents the object dependent on the Antecedent." ) ] CIM_ManagedSystemElement REF Dependent ; }; //*** class CIM_Dependency // ================================================================== // CIM_HostedService // ================================================================== [Abstract , Association , Locale (0x409) : ToInstance , Description ( "CIM_HostedService is an association between a Service and the System on " "which the functionality resides. The cardinality of this association " "is 1-to-many. A System may host many Services. Services are weak with " "respect to their hosting System. Heuristic: A Service is hosted on the " "System where the LogicalDevices or SoftwareFeatures that implement the " "Service are located. The model does not represent Services hosted " "across multiple systems. This is modeled as an ApplicationSystem that " "acts as an aggregation point for Services, that are each located on a " "single host." ), UUID ("{F59C2609-0CCC-487a-B583-184FE6FC2F53}") ] class CIM_HostedService : CIM_Dependency { [Override ("Antecedent") , Max (1) , Min (1) , Description ("The hosting System.") ] CIM_System REF Antecedent ; [Override ("Dependent") , Weak, Description ("The Service hosted on the System.") ] CIM_Service REF Dependent ; }; //*** class CIM_HostedService // ================================================================== // CIM_Component // ================================================================== [Association , Abstract , Locale (0x409) : ToInstance , Aggregation , Description ( "CIM_Component is a generic association used to establish 'part of' " "relationships between Managed System Elements. For example, the " "SystemComponent association defines parts of a System." ), UUID ("{7C6B02AF-B639-4ca5-9A92-E5710AB090AC}") ] class CIM_Component { [Aggregate , Key , Description ("The parent element in the association.") ] CIM_ManagedSystemElement REF GroupComponent ; [Key , Description ("The child element in the association.") ] CIM_ManagedSystemElement REF PartComponent ; }; //*** class CIM_Component // ================================================================== // CIM_SystemComponent // ================================================================== [Abstract , Locale (0x409) : ToInstance , Association , Aggregation , Description ( "CIM_SystemComponent is a specialization of the CIM_Component " "association that establishes 'part of' relationships between a System " "and the Managed System Elements of which it is composed." ), UUID ("{D4DF8D45-2057-4f5f-AAF0-BC4452F48F1F}") ] class CIM_SystemComponent : CIM_Component { [Override ("GroupComponent") , Aggregate , Description ("The parent System in the Association.") ] CIM_System REF GroupComponent ; [Override ("PartComponent") , Description ("The child element that is a component of a System.") ] CIM_ManagedSystemElement REF PartComponent ; }; //*** class CIM_SystemComponent // ================================================================== // CIM_SystemDevice // ================================================================== [Abstract , Locale (0x409) : ToInstance , Association , Aggregation , Description ( "LogicalDevices may be aggregated by a System. This relationship is " "made explicit by the SystemDevice association." ), UUID ("{D6CB4144-71F3-46b3-AE99-C0AD9A930CD1}") ] class CIM_SystemDevice : CIM_SystemComponent { [Override ("GroupComponent") , Aggregate, Max (1) , Min (1) , Description ("The parent system in the Association.") ] CIM_System REF GroupComponent ; [Override ("PartComponent") , Weak, Description ("The LogicalDevice that is a component of a System.") ] CIM_LogicalDevice REF PartComponent ; }; //*** class CIM_SystemDevice // =================================================================== // CIM_ComponentCS // =================================================================== [Association , Aggregation , Locale (0x409) , Description ( "A ComputerSystem can aggregate another ComputerSystem. This association " "can be used to model MPP Systems with workstation frontends, an I2O " "subsystem embedded in a UnitaryComputerSystem, or a System that splits " "functionality between two processors, potentially running different " "OperatingSystems. For example, if a CISC Processor and its associated " "OperatingSystem, are used for user interface and file support, and a " "RISC Processor and its OS are used for complex mathematical operations, " "this could be modeled as two ComputerSystems where one aggregates the " "other. In some cases, this could be modeled as a Cluster. The " "difference is the focus of the relationship. ComponentCS represents " "that unique and distinct ComputerSystems are aggregated by a higher " "level CS object. However, each of the component CSs are still " "distinguishable entities and are only viewed as such. Alternately, with " "a Cluster, the ComputerSystems that participate in it are " "inconsequential, when viewed through the 'Cluster System'.\n\nWhen " "instantiating or subclassing the ComponentCS relationship, care should " "be taken that the component ComputerSystem meets the definitional " "requirements of a ComputerSystem - ie, a functional whole that provides " "compute capabilities and aggregates System Devices, an OperatingSystem, " "etc." ), UUID ("{AB653DD2-EA29-4dcc-9F10-8C809A50A646}") ] class CIM_ComponentCS : CIM_SystemComponent { [Override ("GroupComponent") , Aggregate , Description ( "The ComputerSystem that contains and/or aggregates other Systems." ) ] CIM_ComputerSystem REF GroupComponent ; [Override ("PartComponent") , Description ("The contained (Sub)ComputerSystem.") ] CIM_ComputerSystem REF PartComponent ; }; //*** class CIM_ComponentCS // =================================================================== // CIM_Cluster // =================================================================== [Abstract , Locale (0x409) : ToInstance , Description ( "A class derived from ComputerSystem that 'is made up of' two or more " "ComputerSystems which operate together as an atomic, functional whole " "to increase the performance, resources and/or RAS (Reliability, " "Availability and Serviceability) of the component ComputerSystems, " "related to some aspects of these ComputerSystems." ), UUID ("{35239F78-E086-44a2-B506-140D0D1F7DBA}") ] class CIM_Cluster : CIM_ComputerSystem { [Description ( "Interconnect is a free form string that describes the interconnection " "mechanism for the Cluster." ) ] string Interconnect ; [Description ( "InterconnectAddress indicates the address of the Cluster System, which " "is dependent on the interconnection scheme. If no address is available " "or applicable, a null string should be used." ) ] string InterconnectAddress ; [Description ( "The cluster types. This specifies whether the cluster is for failover (" "value=2), performance (3), etc. The values which can be specified are " "not mutually exclusive. Thus, Types is an array." ) , Values { "Unknown" , "Other", "Failover", "Performance", "Distributed OS", "Node Grouping", "SysPlex" } ] uint16 Types[] ; [Description ( "Indicates the maximum number of nodes that may participate in the " "Cluster. If unlimited, enter 0." ) ] uint32 MaxNumberOfNodes ; [Description ( "Indicates the state of the Cluster. The cluster can be defined to be " "on-line (value=2), off-line (3), in a degraded mode of operation (4) or " "unavailable (5)." ) , Values { "Unknown", "Other", "On-line", "Off-line", "Degraded", "Unavailable" } ] uint16 ClusterState ; }; //*** class CIM_Cluster // =================================================================== // CIM_ParticipatingCS // =================================================================== [Abstract , Association , Locale (0x409) : ToInstance , Description ( "A Cluster is composed of two or more ComputerSystems, operating " "together. A ComputerSystem may participate in multiple Clusters. " "\n\nWhen first establishing or bringing up a Cluster, only one " "ComputerSystem may be defined as participating in it. Therfore, the " "cardinality of the association for the ComputerSystem reference is " "Min(1)." ), UUID ("{8A5CD126-FD8B-4eb2-AEDF-5DC22B6DE989}") ] class CIM_ParticipatingCS : CIM_Dependency { [Override ("Antecedent") , Description ( "The ComputerSystem which participates in the Cluster." ) , Min (1) ] CIM_ComputerSystem REF Antecedent ; [Override ("Dependent") , Description ("The Cluster.") ] CIM_Cluster REF Dependent ; [Description ( "StateOfNode indicates the condition of the participating ComputerSystem " "in the Cluster. For example, one value is \"Joining\" (2)." ) , Values { "Unknown", "Other", "Joining", "Paused", "Available", "Unavailable", "Degraded" } ] uint16 StateOfNode ; [Description ( "RoleOfNode indicates whether the Cluster nodes are peers (value = 2), " "connected in a master-slave/primary-secondary relationship (values = 3 " "for primary, 4 for secondary), available in a standby configuration (5) " "or of some other (1) or unknown (0) relationship. In a System/390 " "environment, the nodes are identified as \"Base Plex\" (value=6) or " "\"Enhanced Plex\" (value=7)." ) , Values { "Unknown", "Other", "Peer", "Primary", "Secondary", "Standby", "Base Plex", "Enhanced Plex" } ] uint16 RoleOfNode ; }; //*** class CIM_ParticipatingCS //************************************************************************ //* Microsoft Cluster Service Schema //************************************************************************ // =================================================================== // MSCluster_Property // =================================================================== [Abstract : ToSubClass, Locale (0x409) : ToInstance , Description( "Superclass for properties of cluster objects." ), UUID ("{4D5365E3-A8F2-4167-8565-7A588D1F4FA5}") ] class MSCluster_Property { }; //*** class MSCluster_Property // =================================================================== // MSCluster_LogicalElement // =================================================================== [Abstract , Locale (0x409) : ToInstance , Description ( "Superclass for cluster objects that provide " "the FLAGS and CHARACTERISTICS attributes" ), UUID ("{9EB9A2F9-0751-4dcf-AB59-F8341D0F60B2}") ] class MSCluster_LogicalElement : CIM_LogicalElement { [Read : ToSubClass , Write : ToSubClass ] uint32 Flags ; [Read : ToSubClass , Write : ToSubClass ] uint32 Characteristics ; }; //*** class MSCluster_LogicalElement // =================================================================== // MSCluster_Cluster // =================================================================== [Dynamic , Locale (0x409) , Provider ("MS_CLUSTER_PROVIDER"), UUID ("{9EB9A2F9-0751-4dcf-AB59-F8341D0F60B2}") ] class MSCluster_Cluster : CIM_Cluster { [Read : ToSubClass , Description ( "The Name property specifies the name of the cluster." ) ] string Name ; [Read : ToSubClass , Write : ToSubClass , Description ( "The Description property stores administrative comments " "about the cluster." ) ] string Description ; [Read : ToSubClass , Write : ToSubClass , Description ("The location of maintenance file.") ] string MaintenanceFile ; [Read : ToSubClass , Write : ToSubClass , Description ( "The AdminExtensions property provides the class identifiers " "(CLSIDs) for the Cluster Administrator extension DLLs that are " "associated with the cluster." ) ] string AdminExtensions[] ; [Read : ToSubClass , Write : ToSubClass ] string GroupAdminExtensions[] ; [Read : ToSubClass , Write : ToSubClass ] string NodeAdminExtensions[] ; [Read : ToSubClass , Write : ToSubClass ] string ResourceAdminExtensions[] ; [Read : ToSubClass , Write : ToSubClass ] string ResourceTypeAdminExtensions[] ; [Read : ToSubClass , Write : ToSubClass ] string NetworkAdminExtensions[] ; [Read : ToSubClass , Write : ToSubClass ] string NetworkInterfaceAdminExtensions[] ; [Read : ToSubClass , Write : ToSubClass , Description ( "The SecurityDescriptor property stores Windows 2000-compatible " "security descriptor information." ) ] uint8 Security[] ; [Read : ToSubClass , Write : ToSubClass , Description ("The size of quorum log file.") ] uint32 QuorumLogFileSize ; [Read : ToSubClass , Write:ToSubClass , Arraytype ("Ordered") , Description ( "Prioritized array of networks. " "The first in the array has the highest priority" ) ] string NetworkPriorities[] ; uint32 DefaultNetworkRole ; uint32 EnableEventLogReplication ; uint8 Security_Descriptor[] ; //*********** //* Methods * //*********** [Implemented] void Rename( [IN] string newName ) ; [Implemented] void SetQuorumResource( [IN] MSCluster_Resource REF Resource ) ; }; //*** class MSCluster_Cluster // =================================================================== // MSCluster_ResourceGroup // =================================================================== [Dynamic , Locale (0x409) , Provider ("MS_CLUSTER_PROVIDER"), UUID ("{DDE3A30E-55F7-4c31-B6CF-E360D12C5253}") ] class MSCluster_ResourceGroup : MSCluster_LogicalElement { [Read : ToSubClass , Write : ToSubClass , Description ( "The Description property provides comments about the group." ) ] string Description; [Key , Read : ToSubClass , Description ("The Name property specifies the name of the group.") ] string Name = NULL ; [Read : ToSubClass , Write : ToSubClass , Description ( "The AutoFailbackType property specifies whether the group " "should automatically be failed back to the node identified " "as its preferred owner when that node comes back online " "following a failover." ), Values { "ClusterGroupPreventFailback", "ClusterGroupAllowFailback" } ] uint32 AutoFailbackType ; [Read : ToSubClass , Write : ToSubClass , Description ( "The FailbackWindowEnd property provides the latest time that " "the group can be moved back to the node identified as its " "preferred node." ) , Min (-1) , Max (23) , Units ("hours") ] sint32 FailbackWindowEnd ; [Read : ToSubClass , Write : ToSubClass , Description ( "The FailbackWindowStart property provides the earliest time " "(that is, local time as kept by the cluster) that the group " "can be moved back to the node identified as its preferred node." ), Min (-1) , Max (23) , Units ("hours") ] sint32 FailbackWindowStart ; [Read : ToSubClass , Write : ToSubClass , Description ( "The FailoverPeriod property specifies a number of hours during " "which a maximum number of failover attempts, specified by " "FailoverThreshold, can occur." ) , Min (1) , Max (1193), Units ("hours") ] uint32 FailoverPeriod ; [Read : ToSubClass , Write : ToSubClass , Description ( "The FailoverThreshold property specifies the maximum number of " "failover attempts that can be made on a group within a time " "interval defined by FailoverPeriod." ) ] uint32 FailoverThreshold ; [Read : ToSubClass , Description ( "The PersistentState property specifies whether a group should " "be left offline or brought online when the Cluster Service " "starts." ) ] boolean PersistentState ; [Read : ToSubClass , Write : ToSubClass , ArrayType ("Ordered") , Description ( "Array of handles to nodes, in order by preference, with the " "first node being the most preferred and the last node the " "least preferred." ) ] string PreferredNodeList[] ; [Read : ToSubClass , Write : ToSubClass , Description ( "The LoadBalState property is reserved for future use " "and is not used by Windows Clustering at this time." ) ] uint32 LoadBalState; //*********** //* Methods * //*********** [Implemented] void BringOnline() ; [Implemented] void TakeOffline(); [Implemented , Description ("To move the group to different node.") ] void MoveToNewNode( [IN] string NodeName ) ; [Implemented , Description ("To rename the group.") ] void Rename( [IN] string newName ) ; [Implemented , Static , Description ("Create a new group") ] void CreateGroup( [IN] string GroupName ) ; }; //*** class MSCluster_ResourceGroup // =================================================================== // MSCluster_Networks // =================================================================== [Dynamic , Locale (0x409) , Provider ("MS_CLUSTER_PROVIDER"), UUID ("{F541DA2A-174C-4000-9066-B755095C7E7A}") ] class MSCluster_Networks : MSCluster_LogicalElement { [Key , Read : ToSubClass , Description ("The Name property provides the name of the network.") ] string Name ; [Read : ToSubClass , Write : ToSubClass , Description ( "The Description property provides comments about the network." ) ] string Description ; [Read : ToSubClass , Description ( "The Address property provides the address for the entire network " "or subnet." ) ] string Address ; [Read : ToSubClass , Description ( "The AddressMask property provides the mask that distinguishes the " "network and host portions of an address." ) ] string AddressMask ; [Read : ToSubClass , Write : ToSubClass , Description ( "The Role property provides the role of the network in the cluster." ), Values { "ClusterNetworkRoleNone", "ClusterNetworkRoleClientAccess", "ClusterNetworkRoleInternalUse", "ClusterNetworkRoleInternalAndClient" } ] uint32 Role ; uint32 State ; //*********** //* Methods * //*********** [Description ("To rename the network."), Implemented ] void Rename( [IN] string newName ); }; //*** class MSCluster_Networks // =================================================================== // MSCluster_Node // =================================================================== [Dynamic , Locale (0x409) , Provider ("MS_CLUSTER_PROVIDER"), UUID ("{C306EBED-0654-4360-AA70-DE912C5FC364}") ] class MSCluster_Node : CIM_UnitaryComputerSystem { [Read : ToSubClass , Write : ToSubClass , Description ( "The Description property provides comments about the node." ) ] string Description ; [Read : ToSubClass , Description ( "The NodeHighestVersion property specifies the highest possible " "version of Clustering Service with which the node can join or " "communicate." ) ] uint32 NodeHighestVersion ; [Read : ToSubClass , Description ( "The NodeLowestVersion property specifies the lowest possible " "version of Clustering Service with which the node can join or " "communicate." ) ] uint32 NodeLowestVersion ; [Read : ToSubClass , Description ( "The MajorVersion property specifies the integer component of " "the Windows NT/Window 2000 version installed on the node." ) ] uint32 MajorVersion ; [Read : ToSubClass, Description ( "The MinorVersion property specifies the decimal component of " "the Windows NT/Window 2000 version installed on the node." ) ] uint32 MinorVersion ; [Read : ToSubClass , Description ( "The BuildNumber property specifies the build number of " "Microsoft® Windows NT®/Windows® 2000 installed on a node." ) ] uint32 BuildNumber ; [Read : ToSubClass , Description ( "The CSDVersion property specifies the number of the most recent " "service pack installed on the node (if any)." ) ] uint32 CSDVersion ; [Read : ToSubClass , Write : ToSubClass , Description ( "The EnableEventLogReplication property controls whether the " "Windows NT/Windows 2000 Event Log is replicated." ) ] uint32 EnableEventLogReplication ; [Read : ToSubClass , Description ("The current state of a node.") ] uint32 State ; [Read : ToSubClass , Write : ToSubClass ] uint32 Flags ; [Read : ToSubClass , Write : ToSubClass ] uint32 Characteristics ; }; //*** class MSCluster_Node // =================================================================== // MSCluster_Service // =================================================================== [Dynamic , Locale (0x409) , Provider ("MS_CLUSTER_PROVIDER"), UUID ("{8F9030D0-9149-4113-9ADD-6F2101285E5D}") ] class MSCluster_Service : CIM_ClusteringService { [Read : ToSubClass , Description ( "The NodeHighestVersion property specifies the highest possible " "version of Clustering Service with which the node hosting this " "service can join or communicate." ) ] uint32 NodeHighestVersion ; [Read : ToSubClass , Description ( "The NodeLowestVersion property specifies the lowest possible " "version of Clustering Service with which the node hosting this " "service can join or communicate." ) ] uint32 NodeLowestVersion ; [Read : ToSubClass , Write : ToSubClass , Description ( "The EnableEventLogReplication property controls whether the " "Windows NT/Windows 2000 Event Log is replicated." ) ] uint32 EnableEventLogReplication ; [Read : ToSubClass , Description ("The current state of the node hosting this service.") ] uint32 State ; //*********** //* Methods * //*********** [Implemented] void Pause() ; [Implemented] void Resume() ; }; //*** class MSCluster_Service // =================================================================== // MSCluster_Resource // =================================================================== [Dynamic , Locale (0x409) , Provider ("MS_CLUSTER_PROVIDER"), UUID ("{C2862F9C-34DE-4b16-9EE3-099D078E9F59}") ] class MSCluster_Resource : MSCluster_LogicalElement { [Key , Read : ToSubClass , Description ( "The Name property provides the name of the Resource." ) ] string Name ; [Read : ToSubClass , Write : ToSubClass , Description ( "The Description property provides comments about the Resource." ) ] string Description ; [Read : ToSubClass , Write : ToSubClass , Description ( "The DebugPrefix property specifies the path to the debugger " "used to debug the resource." ) ] string DebugPrefix ; [Read : ToSubClass , Write : ToSubClass , Description ( "The IsAlivePollInterval property provides the recommended " "interval in milliseconds at which the Cluster Service should " "poll the resource to determine if it is operational. If it " "sets it to 0xFFFFFFFF, the Cluster Service uses the " "IsAlivePollInterval property for the resource type associated " "with the resource." ), Units ("Milliseconds") ] uint32 IsAlivePollInterval ; [Read : ToSubClass , Write : ToSubClass , Description ( "The LooksAlivePollInterval property provides the recommended " "interval in milliseconds at which the Cluster Service should " "poll the resource to determine if it appears operational. If it " "sets it to 0xFFFFFFFF, the Cluster Service uses the " "LooksAlivePollInterval property for the resource type " "associated with the resource." ), Units ("Milliseconds") ] uint32 LooksAlivePollInterval ; uint32 LoadBalAnalysisInterval ; uint32 LoadBalMinMemoryUnits; uint32 LoadBalMinProcessorUnits; uint32 LoadBalSampleInterval ; uint32 LoadBalStartupInterval; [Read : ToSubClass , Write : ToSubClass , Description ( "If a resource cannot be brought online or taken offline in " "the number of milliseconds specified by the PendingTimeout " "property, the resource is forcibly terminated." ) ] uint32 PendingTimeout ; [Read : ToSubClass , Write : ToSubClass , Description ( "The PersistentState property specifies whether the resource " "should be brought online or left offline when the Cluster " "Service is started." ) ] boolean PersistentState ; [Read : ToSubClass , Write : ToSubClass , Description ( "The RestartAction property describes the action to be taken " "by the Cluster Service if the resource fails." ), Values { "ClusterResourceDontRestart", "ClusterResourceRestartNoNotify", "ClusterResourceRestartNotify" } ] uint32 RestartAction ; [Read : ToSubClass , Write : ToSubClass , Description ( "The RestartPeriod property defines an interval of time, in " "milliseconds, during which a specified number of restart " "attempts can be made on a nonresponsive resource." ) ] uint32 RestartPeriod ; [Read : ToSubClass , Write : ToSubClass , Description ( "The RestartThreshold property specifies the maximum number " "of restart attempts that can be made on a resource within an " "interval defined by the RestartPeriod property before the " "Cluster Service initiates the action specified by the " "RestartAction property." ) ] uint32 RestartThreshold ; [Read : ToSubClass , Write : ToSubClass , Description ( "The RetryPeriodOnFailure property specifies the interval of " "time (in milliseconds) that a resource should remain in a " "failed state before the Cluster service attempts to restart it." ) ] uint32 RetryPeriodOnFailure ; [Read : ToSubClass , Write : ToSubClass , Description ( "The SeparateMonitor property indicates whether the resource " "requires its own Resource Monitor." ) ] boolean SeparateMonitor ; [Read : ToSubClass , Write : ToSubClass , Description ( "The Type property specifies the display name for the resource's " "type." ) ] string Type ; [Read : ToSubClass , Description ("The current state of the resource.") ] uint32 State ; [Read : ToSubClass , Write : ToSubClass ] uint32 ResourceClass ; [Read : ToSubClass , Write : ToSubClass ] uint32 Subclass ; [Read : ToSubClass , Write : ToSubClass , Description ( "List of references to nodes that can be the owner of this resource." ) ] MSCluster_Node REF PossibleOwners[] ; MSCluster_Property PrivateProperties; [Read : ToSubClass , Description ( "List of crypto checkpoints for this resource." ) ] string CryptoCheckpoints[] ; [Read : ToSubClass , Description ( "List of registry checkpoints for this resource." ) ] string RegistryCheckpoints[] ; [Read : ToSubClass, Description("The resource can be selected as the quorum resource for the cluster") ] boolean QuorumCapable; [Read : ToSubClass, Description("The resource can be selected as the quorum resource " "in clusters configured using the -localquorum switch.") ] boolean LocalQuorumCapable; [Read : ToSubClass, Description("The resource cannot be deleted unless all nodes are active.") ] boolean DeleteRequiresAllNodes; [Read : ToSubClass, Description("Indicates that the resource is essential to the cluster and cannot be deleted.") ] boolean CoreResource; //*********** //* Methods * //*********** [Implemented , Static , Description (" Create a new resource ") : ToSubClass ] void CreateResource( [IN, Description ("The group name to receive the resource.") ] MSCluster_ResourceGroup REF Group , [IN, Description ("The name to assign to the resource.") ] string ResourceName , [IN, Description ("The type of resource to create.") ] string ResourceType , [IN, Description ( "TRUE if the resource needs a separate resource monitor." ) ] boolean SeparateMonitor = FALSE ) ; [Implemented : ToSubClass , Description ( "Move the resource to a different group." ) : ToSubClass ] void MoveToNewGroup( [IN, Description ("The group name to receive the resource.") ] MSCluster_ResourceGroup REF Group ) ; [Implemented : ToSubClass , Description ( "Create a dependency relationship between two resources.") : ToSubClass ] void AddDependency( [IN, Description ("The resource that this resource should depend on.") ] MSCluster_Resource REF Resource ) ; [Implemented : ToSubClass , Description ( "Remove a dependency relationship between two resources." ) ] void RemoveDependency( [IN, Description ( "The resource that this resource should no longer depend on." ) ] MSCluster_Resource REF Resource ) ; [Description ("Take the resource online") : ToSubClass , Implemented : ToSubClass ] void BringOnline() ; [Description ("Take the resource offline") : ToSubClass , Implemented : ToSubClass ] void TakeOffline() ; [Description ("Rename the resource.") : ToSubClass , Implemented : ToSubClass ] void Rename( [IN] string newName ) ; [Description ( "Force this resource to become unavailable to simulate failure. " "Used by applications to test their failover configurations." ) : ToSubClass , Implemented : ToSubClass ] void FailResource() ; [Description ("Add a registry checkpoint to this resource." ) : ToSubClass , Implemented : ToSubClass ] void AddRegistryCheckpoint( [IN] string CheckpointName ) ; [Description ("Add a registry checkpoint to this resource." ) : ToSubClass , Implemented : ToSubClass ] void RemoveRegistryCheckpoint( [IN] string CheckpointName ) ; [Description ("Add an encrypted checkpoint to this resource." ) : ToSubClass , Implemented : ToSubClass ] void AddCryptoCheckpoint( [IN] string CheckpointName ) ; [Description ("Add an encrypted checkpoint to this resource." ) : ToSubClass , Implemented : ToSubClass ] void RemoveCryptoCheckpoint( [IN] string CheckpointName ) ; }; //*** class MSCluster_Resource // =================================================================== // MSCluster_ResourceType // =================================================================== [Dynamic , Locale (0x409) , Provider ("MS_CLUSTER_PROVIDER"), UUID ("{2F2EF49D-37DD-47c2-8328-6586142B8C99}") ] class MSCluster_ResourceType : MSCluster_LogicalElement { [Key , Read : ToSubClass , Description ( "The Name property provides the name of the ResourceType." ) ] string Name ; [Read : ToSubClass , Write : ToSubClass , Description ( "The DisplayName property is a friendly name for the ResourceType" "presented in the UI." ) ] string DisplayName ; [Read : ToSubClass , Write : ToSubClass , Description ( "The Description property provides comments about the ResourceType." ) ] string Description ; [Read : ToSubClass , Write : ToSubClass , Description ( "The AdminExtensions property provides the class identifiers (CLSIDs) " "for the Cluster Administrator extension DLLs that are associated with " "the resource type." ) ] string AdminExtensions[] ; [Read : ToSubClass , Description ( "The DllName property provides the name of the dynamic-link library (DLL)" " for the resource type." ) ] string DllName ; [Read : ToSubClass , Write : ToSubClass , Description ( "The IsAlivePollInterval property provides the recommended interval in " "milliseconds at which the Cluster Service should poll the resource to " "determine if it is operational." ) ] uint32 IsAlivePollInterval ; [Read : ToSubClass , Write : ToSubClass , Description ( "The LooksAlivePollInterval property provides the recommended interval " "in milliseconds at which the Cluster Service should poll the resource " "to determine if it appears operational." ) ] uint32 LooksAlivePollInterval ; [Read : ToSubClass, Description("The resource can be selected as the quorum resource for the cluster") ] boolean QuorumCapable; [Read : ToSubClass, Description("The resource can be selected as the quorum resource " "in clusters configured using the -localquorum switch.") ] boolean LocalQuorumCapable; [Read : ToSubClass, Description("The resource cannot be deleted unless all nodes are active.") ] boolean DeleteRequiresAllNodes; }; //*** class MSCluster_ResourceType // =================================================================== // MSCluster_NetworkInterface // =================================================================== [Dynamic , Locale (0x409) , Provider ("MS_CLUSTER_PROVIDER"), UUID ("{3DE393F8-8FD5-4426-901D-8EE017003A61}") ] class MSCluster_NetworkInterface : CIM_LogicalDevice { [Read : ToSubClass , Description ( "The Name property provides the Clustering Service-generated " "name for the network interface." ) ] string Name ; [Read : ToSubClass , Write: ToSubClass, Description ( "The Description property provides comments about the network " "interface." ) ] string Description ; [Read : ToSubClass , Description ( "The Adapter property provides the name that is used to uniquely " "identify the network interface in the cluster." ) ] string Adapter ; [Read : ToSubClass , Description ( "The Address property provides the primary network address that " "the node uses for the network interface." ) ] string Address ; [Read : ToSubClass , Description ( "The Network property provides the name of the network to which " "the networkinterface is connected." ) ] string Network ; [Read : ToSubClass , Description ("The current state of the network interface") ] uint32 State ; [Read : ToSubClass , Write : ToSubClass ] uint32 Flags ; [Read : ToSubClass , Write : ToSubClass ] uint32 Characteristics ; }; //*** class MSCluster_NetworkInterface // =================================================================== // MSCluster_ClusterToGroup // =================================================================== [Dynamic , Provider ("MS_CLUSTER_PROVIDER"), Locale (0x409) , UUID ("{191A06A0-4B96-4914-ABD6-6F7E5F73A191}") ] class MSCluster_ClusterToGroup : CIM_Component { [Override ("GroupComponent") : ToSubClass , Read : ToSubClass , Min (1) : ToSubClass , Max (1) : ToSubClass , Description ("The cluster.") : ToSubClass ] MSCluster_Cluster REF GroupComponent ; [Override ("PartComponent") : ToSubClass , Read : ToSubClass , Description ("The group managed by cluster.") : ToSubClass ] MSCluster_ResourceGroup REF PartComponent ; }; //*** class MSCluster_ClusterToGroup // =================================================================== // MSCluster_ClusterToResource // =================================================================== [Dynamic , Provider ("MS_CLUSTER_PROVIDER") , Description ("Cluster consists of resources." ) : ToSubClass , Locale (0x409) , UUID ("{89AC25D0-9706-481e-98E0-7DCD7AD8BDD4}") ] class MSCluster_ClusterToResource : CIM_Component { [Override ("GroupComponent") : ToSubClass , Read : ToSubClass, Min (1) : ToSubClass , Max (1) : ToSubClass , Description ("The cluster." ) : ToSubClass ] MSCluster_Cluster REF GroupComponent ; [Override ("PartComponent") : ToSubClass , Read : ToSubClass , Description ("The resource managed by the cluster.") : ToSubClass ] MSCluster_Resource REF PartComponent ; }; //*** class MSCluster_ClusterToResource // =================================================================== // MSCluster_ClusterToResourceType // =================================================================== [Dynamic , Provider ("MS_CLUSTER_PROVIDER") , Description ( "Type of resource that supported by the cluster." ) : ToSubClass , Locale (0x409) , UUID ("{1059D8CA-76CF-46dc-A14B-B7BB546270AD}") ] class MSCluster_ClusterToResourceType : CIM_Component { [Override ("GroupComponent") : ToSubClass , Read : ToSubClass , Min (1) : ToSubClass , Max (1) : ToSubClass , Description ("The cluster." ) : ToSubClass ] MSCluster_Cluster REF GroupComponent ; [Override ("PartComponent") : ToSubClass , Read : ToSubClass , Description ("The resourceType supported by cluster.") : ToSubClass ] MSCluster_ResourceType REF PartComponent ; }; //*** class MSCluster_ClusterToResourceType // =================================================================== // MSCluster_ClusterToNetworks // =================================================================== [Dynamic , Provider ("MS_CLUSTER_PROVIDER") , Description ("Cluster uses networks for communication." ) : ToSubClass , Locale (0x409) , UUID ("{F3CAB1DD-2F7D-484b-AD54-54187C0A8351}") ] class MSCluster_ClusterToNetworks : CIM_Component { [Override ("GroupComponent") : ToSubClass , Read : ToSubClass , Min (1) : ToSubClass , Max (1) : ToSubClass , Description ("The cluster." ) : ToSubClass ] MSCluster_Cluster REF GroupComponent ; [Override ("PartComponent"): ToSubClass , Read : ToSubClass , Description ("The networks used cluster for communication.") : ToSubClass ] MSCluster_Networks REF PartComponent ; }; //*** class MSCluster_ClusterToNetworks // =================================================================== // MSCluster_ClusterToNetworkInterface // =================================================================== [Dynamic , Provider ("MS_CLUSTER_PROVIDER") , Description ( "Cluster has many network interfaces installed on nodes it manages." ) : ToSubClass , Locale (0x409) , UUID ("{CB737284-A6D8-4d46-92F0-20992869A84E}") ] class MSCluster_ClusterToNetworkInterface : CIM_Component { [Override ("GroupComponent") : ToSubClass , Read : ToSubClass , Min (1) : ToSubClass , Max (1) : ToSubClass , Description ("The cluster.") : ToSubClass ] MSCluster_Cluster REF GroupComponent ; [Override ("PartComponent") : ToSubClass , Read : ToSubClass , Description ("The networks interfaces.") : ToSubClass ] MSCluster_NetworkInterface REF PartComponent ; }; //*** class MSCluster_ClusterToNetworkInterface // =================================================================== // MSCluster_NetworkToNetworksInterface // =================================================================== [Dynamic , Provider ("MS_CLUSTER_PROVIDER") , Description ( "Network interfaces connected to a network." ) : ToSubClass , Locale (0x409) , UUID ("{099B1BE4-D4BD-4b56-9815-AA90234B03C6}") ] class MSCluster_NetworkToNetworksInterface : CIM_Component { [Override ("GroupComponent") : ToSubClass , Read : ToSubClass , Min (1) : ToSubClass , Max (1) : ToSubClass , Description ("The network.") : ToSubClass ] MSCluster_Networks REF GroupComponent ; [Override ("PartComponent") : ToSubClass , Read : ToSubClass , Description ("The networks interfaces.") : ToSubClass ] MSCluster_NetworkInterface REF PartComponent ; }; //*** class MSCluster_NetworkToNetworksInterface // =================================================================== // MSCluster_NodeActiveGroup // =================================================================== [Dynamic , Provider ("MS_CLUSTER_PROVIDER") , Description ("Groups active on a node.") : ToSubClass , Locale (0x409) , UUID ("{AE76778B-B9C4-4765-9E61-7A3DC17F919C}") ] class MSCluster_NodeActiveGroup : CIM_Component { [Override ("GroupComponent") : ToSubClass , Read : ToSubClass , Min (1) : ToSubClass , Description ("The node.") : ToSubClass ] MSCluster_Node REF GroupComponent ; [Override ("PartComponent") : ToSubClass , Read : ToSubClass , Description ("The group that is active on the node.") : ToSubClass ] MSCluster_ResourceGroup REF PartComponent ; }; //*** class MSCluster_NodeActiveGroup // =================================================================== // MSCluster_NodeActiveResource // =================================================================== [Dynamic , Provider ("MS_CLUSTER_PROVIDER") , Description ("Resources active on a node.") : ToSubClass , Locale (0x409) , UUID ("{4D440386-1CC3-4dca-AFB2-DB74A60A3891}") ] class MSCluster_NodeActiveResource : CIM_Component { [Override ("GroupComponent") : ToSubClass , Read : ToSubClass , Min (1) : ToSubClass , Max (1) : ToSubClass , Description ("The node.") : ToSubClass ] MSCluster_Node REF GroupComponent ; [Override ("PartComponent") : ToSubClass , Read : ToSubClass , Description ("The resource that is active on the node.") : ToSubClass ] MSCluster_Resource REF PartComponent ; }; //*** class MSCluster_NodeActiveResource // =================================================================== // MSCluster_NodeToNetworkInterface // =================================================================== [Dynamic , Provider ("MS_CLUSTER_PROVIDER") , Description ("Network interfaces connected to a node.") : ToSubClass , Locale (0x409) , UUID ("{82459303-B1E9-4ddf-970F-25B17AD2A01B}") ] class MSCluster_NodeToNetworkInterface : CIM_SystemDevice { [Override ("GroupComponent") : ToSubClass , Read : ToSubClass , Min (1) : ToSubClass , Max (1) : ToSubClass , Description ("The node.") : ToSubClass ] MSCluster_Node REF GroupComponent ; [Override ("PartComponent") : ToSubClass , Read : ToSubClass , Description ("The group that is active on the node.") : ToSubClass ] MSCluster_NetworkInterface REF PartComponent ; }; //*** class MSCluster_NodeToNetworkInterface // =================================================================== // MSCluster_ResourceGroupToResource // =================================================================== [Dynamic , Provider ("MS_CLUSTER_PROVIDER") , Description ("Resources in a group.") : ToSubClass , Locale (0x409) , UUID ("{38DD5882-2610-4ba1-B24E-1CD955B7A6BF}") ] class MSCluster_ResourceGroupToResource : CIM_Component { [Override ("GroupComponent") : ToSubClass , Read : ToSubClass , Min (1) : ToSubClass , Max (1) : ToSubClass , Description ("The group.") : ToSubClass ] MSCluster_ResourceGroup REF GroupComponent ; [Override ("PartComponent") : ToSubClass , Read : ToSubClass , Description ("The resources within the group.") : ToSubClass ] MSCluster_Resource REF PartComponent ; }; //*** class MSCluster_ResourceGroupToResource // =================================================================== // MSCluster_ResourceResourceType // =================================================================== [Dynamic , Provider ("MS_CLUSTER_PROVIDER") , Description ("Resources of a particular type.") : ToSubClass , Locale (0x409) , UUID ("{94F4F3DB-C193-42f1-B6AE-1C74817CD894}") ] class MSCluster_ResourceResourceType : CIM_Component { [Override ("GroupComponent") : ToSubClass , Read : ToSubClass , Min (1) : ToSubClass , Max (1) : ToSubClass , Description ("The resource.") : ToSubClass ] MSCluster_Resource REF GroupComponent ; [Override ("PartComponent") : ToSubClass , Read : ToSubClass , Description ("The resource type.") : ToSubClass ] MSCluster_ResourceType REF PartComponent ; }; //*** class MSCluster_ResourceResourceType // =================================================================== // MSCluster_ClusterToQuorumResource // =================================================================== [Dynamic , Provider ("MS_CLUSTER_PROVIDER") , Description ("A cluster has a quorum resource.") : ToSubClass , Locale (0x409) , UUID ("{FF92D220-3079-44d9-A32B-BEB000E05F77}") ] class MSCluster_ClusterToQuorumResource : CIM_Component { [Override ("GroupComponent") : ToSubClass , Read : ToSubClass , Min (1) : ToSubClass , Max (1) : ToSubClass , Description ("The cluster.") : ToSubClass ] MSCluster_Cluster REF GroupComponent ; [Override ("PartComponent") : ToSubClass, Read : ToSubClass , Min (1) : ToSubClass , Max (1) : ToSubClass , Description ("The quorum resource.") : ToSubClass ] MSCluster_Resource REF PartComponent ; }; //*** class MSCluster_ClusterToQuorumResource // =================================================================== // MSCluster_ResourceDepResource // =================================================================== [Dynamic , Provider ("MS_CLUSTER_PROVIDER") , Description ("Dependencies of a resource.") : ToSubClass , Locale (0x409) , UUID ("{C09C3AB9-E97C-46d8-921F-4B3EA2A7C457}") ] class MSCluster_ResourceDepResource : CIM_Dependency { [Override ("Antecedent") : ToSubClass , Read : ToSubClass , Description ("The Resouce.") : ToSubClass ] MSCluster_Resource REF Antecedent ; [Override ("Dependent") : ToSubClass , Read : ToSubClass , Description ("The resource to be depended on.") : ToSubClass ] MSCluster_Resource REF Dependent ; }; //*** class MSCluster_ResourceDepResource // =================================================================== // MSCluster_ClusterToNode // =================================================================== [Dynamic , Provider ("MS_CLUSTER_PROVIDER"), Locale (0x409) , UUID ("{1DA51F43-8562-4093-9C3A-D9CBB35CF6D2}") ] class MSCluster_ClusterToNode : CIM_ParticipatingCS { [Override ("Antecedent") : ToSubClass , Read : ToSubClass , Min (1) : ToSubClass , Max (1) : ToSubClass , Description ("The cluster." ) : ToSubClass ] MSCluster_Cluster REF Antecedent ; [Override ("Dependent"): ToSubClass , Read : ToSubClass , Description ("Node managed by cluster.") : ToSubClass ] MSCluster_Node REF Dependent ; }; //*** class MSCluster_ClusterToNode // =================================================================== // MSCluster_HostedService // =================================================================== [Dynamic , Provider ("MS_CLUSTER_PROVIDER"), Locale (0x409) , UUID ("{B3C77CEF-67E7-4112-A757-CB072D44EBA3}") ] class MSCluster_HostedService : CIM_HostedService { [Override ("Antecedent") : ToSubClass , Read : ToSubClass , Description ("The node hosting the service.") : ToSubClass ] MSCluster_Node REF Antecedent ; [Override ("Dependent") : ToSubClass , Read : ToSubClass , Description ("The hosted service.") : ToSubClass ] MSCluster_Service REF Dependent ; }; //*** class MSCluster_HostedService // =================================================================== // MSCluster_Event // =================================================================== [Dynamic , Provider ("MS_CLUSTER_PROVIDER"), Locale (0x409) , UUID ("{01D7A9DE-B876-4bb6-ABDB-26B67C52D221}") ] class MSCluster_Event : __ExtrinsicEvent { [Description ( "Major event category. Reserved for future use." ) : ToInstance ToSubClass ] uint32 EventTypeMajor ; [Description ("Subtype within major category. For EventTypeMajor=0, " "This contains the Cluster Event mask value as returned by " "GetClusterNotify." ) : ToInstance ToSubClass ] uint32 EventTypeMinor ; [Description ( "Name of object to which this event applies." ) : ToInstance ToSubClass ] string EventObjectName ; [Description ( "Type of object to which this event applies." ) : ToInstance ToSubClass ] uint32 EventObjectType ; [Description( "WMI Path of object to which this event applies." ) : ToInstance ToSubClass ] string EventObjectPath ; }; //*** class MSCluster_Event // =================================================================== // MSCluster_EventObjectAdd // =================================================================== [Dynamic , Provider ("MS_CLUSTER_PROVIDER"), Locale (0x409) , UUID ("{EDECEF0B-A3C7-4edd-BD75-1CF37F5547B8}") ] class MSCluster_EventObjectAdd : MSCluster_Event { [Description ( "RESERVED FOR FUTURE USE: XML-encoded property names and values " "for added or changed properties" ) : ToInstance ToSubClass ] string EventProperty ; }; //*** class MSCluster_EventObjectAdd // =================================================================== // MSCluster_EventObjectRemove // =================================================================== [Dynamic , Provider ("MS_CLUSTER_PROVIDER"), Locale (0x409) , UUID ("{F12EA54A-75FE-43c9-ACE4-5745D1CA0552}") ] class MSCluster_EventObjectRemove : MSCluster_Event { }; //*** class MSCluster_EventObjectRemove // =================================================================== // MSCluster_EventPropertyChange // =================================================================== [Dynamic , Provider ("MS_CLUSTER_PROVIDER"), Locale (0x409) , UUID ("{4CB6135C-E55D-46fe-8AE4-51E24AF901BD}") ] class MSCluster_EventPropertyChange : MSCluster_Event { [Description ( "RESERVED FOR FUTURE USE: XML-encoded property names and values " "for added or changed properties" ) : ToInstance ToSubClass ] string EventProperty ; }; //*** class MSCluster_EventPropertyChange // =================================================================== // MSCluster_EventStateChange // =================================================================== [Dynamic , Provider ("MS_CLUSTER_PROVIDER"), Locale (0x409) , UUID ("{F68489E2-0301-4594-B25D-613637ECBA1A}") ] class MSCluster_EventStateChange : MSCluster_Event { [Description ( "Current state of object reporting this state change. " "The value returned is one of the state constants for the " "cluster object identified by EventObjectType, found in " "clusapi.h as returned by the relevant GetClusterXXXState " "APIs." ) ] uint32 EventNewState ; }; //*** class MSCluster_EventStateChange // =================================================================== // MSCluster_EventGroupStateChange // =================================================================== [Dynamic , Provider ("MS_CLUSTER_PROVIDER"), Locale (0x409) , UUID ("{D264369A-3133-45eb-AE1D-65B1B641AEAF}") ] class MSCluster_EventGroupStateChange : MSCluster_EventStateChange { [Description ("Current node hosting this group") ] string EventNode ; }; //*** class MSCluster_EventGroupStateChange // =================================================================== // MSCluster_EventResourceStateChange // =================================================================== [Dynamic , Provider ("MS_CLUSTER_PROVIDER"), Locale (0x409) , UUID ("{F1163D38-0E12-49ed-B0AF-09C683F89243}") ] class MSCluster_EventResourceStateChange : MSCluster_EventStateChange { [Description ("Current node hosting this resource") ] string EventNode ; [Description ("Current group containing this resource") ] string EventGroup ; }; //*** class MSCluster_EventResourceStateChange instance of __InstanceProviderRegistration { Provider = $InstanceProv ; SupportsGet = "TRUE" ; SupportsPut = "TRUE" ; SupportsDelete = "TRUE" ; SupportsEnumeration = "TRUE" ; QuerySupportLevels = NULL ; }; instance of __MethodProviderRegistration { Provider = $InstanceProv ; }; instance of __EventProviderRegistration { Provider = $EventProv ; EventQueryList = { "select * from MSCluster_Event" } ; }; instance of __ClassProviderRegistration { Provider = $ClassProv ; InteractionType = 1 ; // Provider is a push provider SupportsGet = "TRUE" ; SupportsEnumeration = "TRUE" ; ResultSetQueries = { "select * from MSCluster_Resource" } ; };