/* Copyright(c) 1999 Microsoft Corporation Schema Name: MicrosoftNLB Abstract: Network Load Balancing MOF Specification. Created by drbeck. */ #pragma autorecover #pragma classflags ("forceupdate") #pragma namespace ("\\\\.\\Root") instance of __NameSpace { Name = "MicrosoftNLB" ; } ; #pragma namespace ( "\\\\.\\Root\\MicrosoftNLB" ) instance of __Win32Provider as $P { Name = "Microsoft|NLB_Provider|V1.0"; ClsId = "{FB223274-D72E-11d2-A420-00C04F68FE28}"; ImpersonationLevel = 1; PerUserInitialization = "FALSE"; }; instance of __InstanceProviderRegistration { Provider = $P; SupportsGet = "TRUE"; SupportsPut = "TRUE"; SupportsDelete = "TRUE"; SupportsEnumeration = "TRUE"; }; instance of __MethodProviderRegistration { Provider = $P; }; // ============================================================================= // CIM_ManagedSystemElement // ============================================================================= [ Abstract, Description ( "The CIM_ManagedSystemElement class 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. \nExamples: software components, such " "as files; and devices, such as disk drives and controllers, " "and physical components such as chips and cards." ) : Amended, LOCALE(0x409) ] class CIM_ManagedSystemElement { [ MaxLen (64), Description ( "The Caption property is a short textual description " "(one-line string) of the object." ) : Amended ] string Caption; [ Description ( "The Description property provides a textual description of " "the object. ") : Amended ] string Description; [ Description ( "The InstallDate property is a datetime value indicating when " "the object was installed. A lack of a value does not indicate " "that the object is not installed." ) : Amended, 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." ) : Amended ] string Name; [ MaxLen (10), Description ( "The Status property is a string indicating the current status " "of the object. Various operational and non-operational " "statuses can be defined. Operational statuses are \"OK\", " "\"Degraded\" and \"Pred Fail\". \"Pred Fail\" indicates that " "an element may be 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\", \"Starting\", \"Stopping\" and " "\"Service\". The latter, \"Service\", could apply during " "mirror-resilvering of a disk, reload of a user permissions " "list, or other administrative work. Not all such work is " "on-line, yet the managed element is neither \"OK\" nor in " "one of the other states.") : Amended ToSubclass, ValueMap { "OK", "Error", "Degraded", "Unknown", "Pred Fail", "Starting", "Stopping", "Service" } : Amended ] string Status; }; // ============================================================================= // CIM_LogicalElement // ============================================================================= [ Abstract, Description ( "The CIM_LogicalElement class is the base class for all the " "components of the system that represent abstract system " "components.\nExample: profiles, processes, or system " "capabilities in the form of logical devices.") : Amended, LOCALE(0x409) ] class CIM_LogicalElement : CIM_ManagedSystemElement { }; // ============================================================================= // CIM_Configuration // ============================================================================= [ Description ( "The Configuration object allows the grouping of sets of " "parameters (defined in CIM_Setting objects) and dependencies " "for one or more managed system elements. The Configuration " "object represents a certain behavior, or a desired functional " "state for the managed system elements. The desired functional " "state is typically driven by external requirements such as " "time or location. For example, to connect to a mail system from " "'home', a dependency on a modem exists, but a dependency on a " "network adapter exists at 'work'. Settings for the pertinent " "logical devices (in this example, POTS modem and network " "adapter) can be defined and aggregated by CIM_Configuration. " "Therefore, two 'Connect to Mail' configurations may be defined " "grouping the relevant dependencies and CIM_Setting objects." ) : Amended, LOCALE(0x409) ] class CIM_Configuration { [ Key, MaxLen (256), Description ( "The label by which the CIM_Configuration object is known.") : Amended ] string Name; [ MaxLen (64), Description ( "A short textual description (one-line string) of the " "CIM_Configuration object") : Amended ] string Caption; [ Description ("A textual description of the CIM_Configuration object.") : Amended ] string Description; }; // ============================================================================= // CIM_ElementConfiguration // ============================================================================= [ Association, Description ( "This association relates a CIM_Configuration object to one " "or more managed system elements. The CIM_Configuration object " "represents a certain behavior, or a desired functional state " "for the associated managed system elements.") : Amended, LOCALE(0x409) ] class CIM_ElementConfiguration { [ Description ("The managed system element") : Amended ] CIM_ManagedSystemElement REF Element; [Description ( "The CIM_Configuration object that groups the settings and " "dependencies associated with the managed system element") : Amended ] CIM_Configuration REF Configuration; }; // ============================================================================= // CIM_Setting // ============================================================================= [ Abstract, Description ( "The CIM_Setting class represents configuration-related and " "operational parameters for one or more managed system" "element(s). A managed system element may have multiple setting " "objects associated with it. The current operational values " "for an element's parameters are reflected by properties in " "the element itself or by properties in its associations. " "These properties do not have to be the same values present " "in the CIM_Setting object. For example, a modem may have a " "setting baud rate of 56Kb/sec but be operating " "at 19.2Kb/sec." ) : Amended, LOCALE(0x409) ] class CIM_Setting { [ MaxLen (256), Description ( "The identifier by which the CIM_Setting object is known.") : Amended ] string SettingID; [ MaxLen (64), Description ( "A short textual description (one-line string) of the " "CIM_Setting object." ) : Amended ] string Caption; [ Description ( "A textual description of the CIM_Setting object.") : Amended ] string Description; }; // ============================================================================= // CIM_ElementSetting // ============================================================================= [ Association, Description ( "CIM_ElementSetting represents the association between managed" "system elements and the setting class(es) defined for them." ) : Amended, LOCALE(0x409) ] class CIM_ElementSetting { [ Description ("The CIM_ManagedSystemElement reference represents the role " "of the CIM_ManagedSystemElement object of the " "CIM_ElementSetting association. Role: The associated managed " "system element provides the element that implements the " "element setting.") : Amended, Min (1) ] CIM_ManagedSystemElement REF Element; [ Description ( "The CIM_Setting reference represents the role of the " "CIM_Setting object of the CIM_ElementSetting association. " "Role: The associated setting provides the setting that " "implements the element setting.") : Amended ] CIM_Setting REF Setting; }; // =================================================================== // CIM_SettingContext // =================================================================== [ Association, Aggregation, Description ( "This relationship associates a setting with one or " "more configuration objects. For example, a network " "adapter's settings could change based on the site/network " "to which its hosting computer system is attached.") : Amended, LOCALE(0x409) ] class CIM_SettingContext { [ Aggregate, Description ( "The configuration object that aggregates the setting") : Amended ] CIM_Configuration REF Context; [ Description ("An aggregated setting.") : Amended ] CIM_Setting REF Setting; }; // ============================================================================= // CIM_System // ============================================================================= [ Abstract, Description ( "A logical element that aggregates an enumerable set of " "managed system elements. The aggregation operates as an " "functional whole. Within any particular subclass of CIM_System, " "there is a well-defined list of CIM_ManagedSystemElement " "classes whose instances must be aggregated." ) : Amended, LOCALE(0x409) ] class CIM_System : CIM_LogicalElement { [ CIM_Key, MaxLen (256), Description ( "The CreationClassName property 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.") : Amended ] string CreationClassName; [ Override ("Name"), Key, MaxLen (256), Description ( "The inherited Name property serves as key of a CIM_System " "instance in an enterprise environment.") : Amended ] string Name; [ MaxLen (64), Description ( "The CIM_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.") : Amended ] 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, ...)." ) : Amended, MappingStrings {"MIF.DMTF|General Information|001.3"} ] string PrimaryOwnerContact; [ MaxLen (64), Description ( "The name of the primary system owner.") : Amended, MappingStrings { "MIF.DMTF|General Information|001.4" } ] string PrimaryOwnerName; [ Description ( "A collection of strings that specify the roles this " "system plays in the IT-environment.") : Amended ] string Roles[]; }; // ============================================================================= // CIM_ComputerSystem // ============================================================================= [ Abstract, Description ( "A class derived from CIM_System that is a special collection " "of CIM_ManagedSystemElement instances. This collection " "provides compute capabilities and serves as aggregation point " "to associate one or more of the following elements: file " "system, operating system, processor and memory (volatile " "and/or non-volatile storage).") : Amended, LOCALE(0x409) ] class CIM_ComputerSystem : CIM_System { [ Override ("NameFormat"), Description ( "The CIM_ComputerSystem object and its derivatives are Top " "Level Objects of CIM. They provide the scope for numerous " "components. Having unique CIM_System keys is required. A " "heuristic is defined to create the CIM_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\n The " "NameFormat property identifies how the computer system name " "is generated, using a heuristic. The heuristic is outlined, " "in detail, in the CIM V2 Common Model specification. 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 computer system " "name. Several rules do map to the same Value. \n\n Note that " "the CIM_ComputerSystem Name calculated using the heuristic " "is the system's key value. Other names can be assigned and " "used for the CIM_ComputerSystem, that better suit the " "business, using Aliases." ) : Amended, ValueMap { "Other", "IP", "Dial", "HID", "NWA", "HWA", "X25", "ISDN", "IPX", "DCC", "ICD", "E.164", "SNA", "OID/OSI"} ] string NameFormat; }; // ============================================================================= // CIM_Service // ============================================================================= [ Abstract, Description ( "A logical element that contains the information necessary to " "represent and manage the functionality provided by a device " "and/or software feature. A service is a general-purpose object " "to configure and manage the implementation of functionality. It " "is not the functionality itself." ) : Amended, LOCALE(0x409) ] 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.") : Amended ] 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.") : Amended ] string Name; [ MaxLen (10), Description ( "StartMode is a string value indicating whether the service " "is automatically started by a operating system, or only " "started upon request." ) : Amended, ValueMap {"Automatic", "Manual"} : Amended ] string StartMode; [ Description ( "Started is a boolean indicating whether the service has " "been started (TRUE), or stopped (FALSE)." ) : Amended ] boolean Started; [ Propagated ("CIM_System.CreationClassName"), CIM_Key, MaxLen (256), Description ( "The scoping System's CreationClassName. ") : Amended ] string SystemCreationClassName; [ Propagated ("CIM_System.Name"), Key, MaxLen (256), Description ("The name of the system that hosts this service") : Amended ] string SystemName; [ 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." ) : Amended ] 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.") : Amended ] uint32 StopService(); }; // ============================================================================= // CIM_Dependency // ============================================================================= [ Association, Abstract, Description ( "A generic association to establish dependency relationships " "between objects") : Amended, LOCALE(0x409) ] class CIM_Dependency { [ Description ( "Antecedent represents the independent object in this " "association.") : Amended ] CIM_ManagedSystemElement REF Antecedent; [ Description ( "Dependent represents the object dependent on the Antecedent.") : Amended ] CIM_ManagedSystemElement REF Dependent; }; // ============================================================================= // CIM_HostedService // ============================================================================= [ Association, 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 logical devices or software features that implement the " "service are located. The model does not represent services " "hosted across multiple systems. This is modeled as an " "application system that acts as an aggregation point for " "services, that are each located on a single host." ) : Amended, LOCALE(0x409) ] class CIM_HostedService:CIM_Dependency { [ Override ("Antecedent"), Max (1), Min (1), Description ( "The hosting system" ) : Amended ] CIM_System REF Antecedent; [ Override ("Dependent"), Weak, Description ("The service hosted on the system") : Amended ] CIM_Service REF Dependent; }; // ============================================================================= // CIM_ServiceServiceDependency // ============================================================================= [ Association, Description ( "CIM_ServiceServiceDependency is an association between a " "service and another service, indicating that the latter is " "required to be present, required to have completed, or must " "be absent for the former service to provide its functionality. " "For example, boot services may be dependent upon underlying " "BIOS Disk and initialization services. In the case of the " "initialization services, the boot service is simply dependent " "on the init services completing. For the disk services, boot " "services may actually utilize the SAPs of this service. " "This usage dependency is modeled via the " "CIM_ServiceSAPDependency association." ) : Amended, LOCALE(0x409) ] class CIM_ServiceServiceDependency:CIM_Dependency { [ Override ("Antecedent"), Description ("The required service.") : Amended ] CIM_Service REF Antecedent; [ Override ("Dependent"), Description ( "The service that is dependent on an underlying service.") : Amended ] CIM_Service REF Dependent; [ Description ( "The nature of the service to service dependency. This " "property describes that the associated service must have " "completed (value=2), must be started (3) or must not be " "started (4) in order for the service to function.") : Amended ToSubclass, Values { "Unknown", "Other", "Service Must Have Completed", "Service Must Be Started", "Service Must Not Be Started" } : Amended ] uint16 TypeOfDependency; }; // ============================================================================= // CIM_Component // ============================================================================= [ Association, Abstract, Aggregation: ToSubClass, Description ( "A generic association to establish 'part of' relationships " "between managed system elements." ) : Amended, LOCALE(0x409) ] class CIM_Component { [ Aggregate: ToSubClass, Description ( "The parent element in the association.") : Amended ] CIM_ManagedSystemElement REF GroupComponent; [ Description ("The child element in the association.") : Amended ] CIM_ManagedSystemElement REF PartComponent; }; // ============================================================================= // CIM_UnitaryComputerSystem // ============================================================================= [ Abstract, Description ( "A class derived from CIM_ComputerSystem that represents a " "desktop, mobile, network PC, server or other type of a " "single node computer system." ) : Amended, LOCALE(0x409) ] 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." ) : Amended ] string InitialLoadInfo[]; [ Description ( "The array entry of the InitialLoadInfo property, that " "holds the data corresponding to booting the currently " "loaded operating system." ) : Amended, MappingStrings { "MIB.IETF|HOST-RESOURCES-MIB.hrSystemInitialLoadDevice", "MIB.IETF|HOST-RESOURCES-MIB.hrSystemInitialLoadParameters" } ] string LastLoadInfo; [ Description ( "If enabled (value = 4), the unitary computer system 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)." ) : Amended, ValueMap { "1", "2", "3", "4", "5" }, Values { "Other", "Unknown", "Disabled", "Enabled", "Not Implemented" } : Amended ToSubclass, MappingStrings { "MIF.DMTF|System Hardware Security|001.4" } ] uint16 ResetCapability; [ Description ( "Boolean indicating that the computer system, with " "its running operating system, support power management. " "This boolean does not indicate that power management " "features are currently enabled, only that the system is " "capable of power management." ) : Amended ] boolean PowerManagementSupported; [ Description( "Indicates the specific power-related capabilities of a " "computer system and its associated running operating " "system. 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 parameter set to 5 (\"Power Cycle\"). " "\"Timed Power On Supported\" (7) indicates that the " "SetPowerState method can be invoked with the " "PowerState parameter set to 5 (\"Power Cycle\") and " "the Time parameter set to a specific date and time, " "or interval, for power-on." ) : Amended, Values { "Unknown", "Not Supported", "Disabled", "Enabled", "Power Saving Modes Entered Automatically", "Power State Settable", "Power Cycling Supported", "Timed Power On Supported" } : Amended, MappingStrings {"MIF.DMTF|System Power Controls|001.2"} ] uint16 PowerManagementCapabilities[]; [ Description( "Indicates the current power state of the computer " "system and its associated operating system. Regarding " "the power saving states, these are defined as follows: " "Value 4 (Unknown) indicates that the system is known " "to be in a power save mode, but its exact status in " "this mode is unknown; 2 (Low Power Mode) indicates " "that the system is in a power save state but still " "functioning, and may exhibit degraded performance; " "3 (Standby) describes that the system is not functioning " "but could be brought to full power 'quickly'; and value " "7 (Warning) indicates that the computerSystem is in a " "warning state, though also in a power save mode." ) : Amended, Values { "Unknown", "Full Power", "Power Save - Low Power Mode", "Power Save - Standby", "Power Save - Unknown", "Power Cycle", "Power Off", "Power Save - Warning" } : Amended ] uint16 PowerState; [ Description( "SetPowerState method defines the desired power state of " "a computer system and its running operating system, 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 power state " "and time requests are not supported, and some other " "value if any other error occurred." ) : Amended ] uint32 SetPowerState([IN] uint16 PowerState, [IN] datetime Time); }; // ============================================================================= // CIM_Cluster // ============================================================================= [ Abstract, Description ( "A class derived from CIM_ComputerSystem that 'is made up of' two " "or more computer systems which operate together as an atomic, " "functional whole to increase the performance, resources and/or " "RAS (Reliability, Availability and Serviceability) of the " "component computer systems, related to some aspects of these " "computer systems." ) : Amended, LOCALE(0x409) ] class CIM_Cluster : CIM_ComputerSystem { [ Description ( "Interconnect is a free form string that describes the " "interconnection mechanism for the cluster." ) : Amended ] 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." ) : Amended ] string InterconnectAddress; [ Description ( "This displays 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 isan array." ) : Amended, Values { "Unknown", "Other", "Failover", "Performance", "Distributed OS", "Node Grouping" } : Amended ] uint16 Types[]; [Description ( "Indicates the maximum number of nodes that may participate in " "the cluster. If unlimited, enter 0." ) : Amended ] 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)." ) : Amended, Values { "Unknown", "Other", "On-line", "Off-line", "Degraded", "Unavailable" } : Amended ] uint16 ClusterState; }; // ============================================================================= // CIM_ParticipatingCS // ============================================================================= [ Association, Abstract, Description ( "A CIM_Cluster is composed of two or more computer system's, " "operating together. A computer system may participate in " "multiple clusters. \n\n" "When first establishing or bringing up a cluster, only one " "computer system may be defined as participating in it. " "Therefore, the cardinality of the association for " "the CIM_ComputerSystem reference is Min(1). " ) : Amended, LOCALE(0x409) ] class CIM_ParticipatingCS : CIM_Dependency { [ Override ("Antecedent"), Description ( "The ComputerSystem which participates in the Cluster. ") : Amended, Min (1) ] CIM_ComputerSystem REF Antecedent; [ Override ("Dependent"), Description ("The cluster") : Amended ] CIM_Cluster REF Dependent; [ Description ( "StateOfNode indicates the condition of the participating " "computer system in the cluster. For example, one value is " "\"Joining\" (2)." ) : Amended, Values { "Unknown", "Other", "Joining", "Paused", "Available", "Unavailable", "Degraded" } : Amended ] uint16 StateOfNode; [ Description ( "RoleOfNode indicates whether the cluster nodes are " "peers (value = 3), connected in a master-slave/primary-" "secondary relationship (values = 4 for primary, 5 for " "secondary), available in a standby configuration (6) or " "of some other (1) or unknown (2) relationship." ) : Amended, Values { "Unknown", "Other", "Peer", "Primary", "Secondary", "Standby" } : Amended ] uint16 RoleOfNode; }; // ============================================================================= // CIM_ClusteringService // ============================================================================= [ Abstract, Description ( "CIM_ClusteringService represents the functionality provided by a " "cluster. For example, failover functionality may be modeled as " "a service of a failover cluster." ) : Amended, LOCALE(0x409) ] class CIM_ClusteringService : CIM_Service { [ Description ( "AddNode brings a new computer system into a cluster. " "The node to be added is specified as a parameter to the " "method. The return value should be 0 if the computer " "system is successfully added, 1 if the method is not " "supported and any other number if an error occurred." ) : Amended ] uint32 AddNode ( [IN] CIM_ComputerSystem ref CS ); [ Description ( "EvictNode removes a computer system from a cluster. " "The node to be evicted is specified as a parameter to the " "method. The return value should be 0 if the computer system " "is successfully evicted, 1 if the method is not supported " "and any other number if an error occurred." ) : Amended ] uint32 EvictNode ( [IN] CIM_ComputerSystem ref CS ); }; // ============================================================================= // CIM_HostedClusterService // ============================================================================= [ Association, Description ( "CIM_HostedClusterService defines the hosting cluster for a " "clustering service. Since this relationship is subclassed " "from CIM_HostedService, it inherits the scoping/naming scheme " "defined for CIM_Service - where a service is weak to its " "hosting system. In this case, a clustering service must be " "weak to its hosting cluster system." ) : Amended, LOCALE(0x409) ] class CIM_HostedClusterService : CIM_HostedService { [ Override ("Antecedent"), Description ("The cluster") : Amended ] CIM_Cluster REF Antecedent; [ Override ("Dependent"), Description ( "The CIM_ClusteringService that is hosted on the cluster." ) : Amended ] CIM_ClusteringService REF Dependent; }; // ***************************************************************************** // MicrosoftNLB_Cluster // ***************************************************************************** [ Dynamic, Provider("Microsoft|NLB_Provider|V1.0"), Description( "This represents an instance of the NLB cluster. Only nodes that " "have remote control enabled contribute to the ClusterState as " "reported in this class and respond to the methods invoked from " "this class.") : Amended, LOCALE(0x409) ] class MicrosoftNLB_Cluster : CIM_Cluster { [ Read, Override ("Name"), MaxLen (256), Description ( "The cluster IP address is used in this property to uniquely " "identify the cluster.") : Amended ] string Name; [ Override("InterconnectAddress"), Read, Description ( "InterconnectAddress displays the IP address of the cluster." ) : Amended ] string InterconnectAddress; [ Override ("ClusterState"), Read, Description ( "Indicates the current state of the entire cluster. Only " "nodes that have remote control enabled report their status. " "The value represents the summary of the state from all " "cluster nodes. In addition to the values indicated in the " "Values qualifier, this property may take on a value from 1 to 32 " "that signifies the number of converged remote-control-enabled " "nodes within the cluster." ) : Amended, Values { "WLBS_SUSPENDED", "WLBS_STOPPED", "WLBS_DRAINING", "WLBS_CONVERGING"} : ToInstance, ValueMap { "1013", "1005", "1009", "1006"} : ToInstance ] uint16 ClusterState; //Methods [ Implemented, Description( "Disable all traffic handling on all remoted-control-enabled " "nodes, for the rule containing the specified port. Port " "may take any value from 0 to 65,535 or 0xFFFFFFFF to specify " "all ports. NumNodes returns the number of nodes that " "have responded to the request.") : Amended, Values { "WLBS_OK", "WLBS_NOT_FOUND", "WLBS_SUSPENDED" } : ToInstance, ValueMap { "1000", "1004", "1013" } : ToInstance ] uint32 Disable( [IN] uint32 Port, [OUT] uint32 NumNodes ); [ Implemented, Description("Enable traffic handling on all remoted-control-enabled nodes, " "for the rule containing the specified port on specified nodes. " "Port may take any value from 0 to 65,535 or 0xFFFFFFFF to " "specify all ports. NumNodes returns the number of nodes that " "have responded to the request.") : Amended, Values { "WLBS_OK", "WLBS_NOT_FOUND", "WLBS_SUSPENDED" } : ToInstance, ValueMap { "1000", "1004", "1013" } : ToInstance ] uint32 Enable( [IN] uint32 Port, [OUT] uint32 NumNodes ); [ Implemented, Description("Disable new traffic handling on all remoted-control-enabled " "nodes, for the rule containing the specified port on " "specified nodes. Port may take any value from 0 to 65,535 " "or 0xFFFFFFFF to specify all ports. NumNodes returns the " "number of nodes that have responded to the request.") : Amended, Values { "WLBS_OK", "WLBS_NOT_FOUND", "WLBS_SUSPENDED" } : ToInstance, ValueMap { "1000", "1004", "1013" } : ToInstance ] uint32 Drain( [IN] uint32 Port, [OUT] uint32 NumNodes ); [ Implemented, Description("Enter draining mode on all remoted-control-enabled nodes. " "WlbsDrainStop affects all ports. NumNodes returns the " "number of nodes that have responded to the request.") : Amended, Values { "WLBS_OK", "WLBS_STOPPED", "WLBS_SUSPENDED" } : ToInstance, ValueMap { "1000", "1005", "1013" } : ToInstance ] uint32 DrainStop( [OUT] uint32 NumNodes ); [ Implemented, Description("Resume cluster operation control on all remoted-control-enabled " "nodes. NumNodes returns the number of nodes respond to the " "request.") : Amended, Values { "WLBS_OK" } : ToInstance, ValueMap { "1000" } : ToInstance ] uint32 Resume( [OUT] uint32 NumNodes ); [ Implemented, Description("Start cluster operations on all remoted-control-enabled " "nodes. NumNodes returns the number of nodes that respond " "to the request.") : Amended, Values { "WLBS_OK", "WLBS_SUSPENDED", "WLBS_BAD_PARAMS" } : ToInstance, ValueMap { "1000", "1013", "1003" } : ToInstance ] uint32 Start( [OUT] uint32 NumNodes ); [ Implemented, Description("Stop cluster operations on all remoted-control-enabled nodes.") : Amended, Values { "WLBS_OK", "WLBS_SUSPENDED" } : ToInstance, ValueMap { "1000", "1013" } : ToInstance ] uint32 Stop( [OUT] uint32 NumNodes ); [ Implemented, Description("Suspend cluster operation control on all remoted-control-enabled nodes.") : Amended, Values { "WLBS_OK" } : ToInstance, ValueMap { "1000" } : ToInstance ] uint32 Suspend( [OUT] uint32 NumNodes ); }; // ***************************************************************************** // MicrosoftNLB_Node // ***************************************************************************** [ Dynamic, Provider("Microsoft|NLB_Provider|V1.0"), Description( "This represents an instance of a node within a cluster." ) : Amended, LOCALE(0x409) ] class MicrosoftNLB_Node : CIM_UnitaryComputerSystem { [ Read, Override ("Name"), Description ( "The ID of the host participating in the cluster. The ID is in " "format ClusterIP:HostPriority, i.e. 172.150.35.12:1") : Amended ] string Name; [ Read, Description("This property specifies a host's unique priority for handling " "default network traffic for TCP and UDP ports that are not " "otherwise handled by port rules. It is used in case a host " "within the cluster goes offline, and determines which host " "within the cluster will take over handling this traffic if " "required. The allowed values for host priority range from 1 " "to the maximum number of hosts. Lower values indicate higher " "priorities (where 1 is the highest priority). Each host " "within the cluster must specify a unique host priority.") : Amended ] uint32 HostPriority; [ Read, Description("This property specifies this host's unique IP address used " "for network traffic not associated with the cluster (for " "example, Telnet access to a specific host within the cluster).") : Amended ] string DedicatedIPAddress; [ Read, Description("The current status of the host.") : Amended, Values { "WLBS_SUSPENDED", "WLBS_STOPPED", "WLBS_DRAINING", "WLBS_CONVERGING", "WLBS_CONVERGED", "WLBS_DEFAULT" } : ToInstance, ValueMap { "1013", "1005", "1009", "1006", "1007", "1008" } : ToInstance ] uint32 StatusCode; //Methods [ Implemented, Description( "Disable all traffic handling for the rule containing the " "specified port. Port may take any value from 0 to 65,535 or" "0xFFFFFFFF to specify all ports.") : Amended, Values { "WLBS_OK", "WLBS_NOT_FOUND", "WLBS_SUSPENDED", "WLBS_ALREADY", "WLBS_STOPPED", "WLBS_DRAINING" } : ToInstance, ValueMap { "1000", "1004", "1013", "1001", "1005", "1009" } : ToInstance ] uint32 Disable( [IN] uint32 Port ); [ Implemented, Description("Enable traffic handling for the rule containing " "the specified port. Port may take any value from " "0 to 65,535 or 0xFFFFFFFF to specify all ports.") : Amended, Values { "WLBS_OK", "WLBS_NOT_FOUND", "WLBS_SUSPENDED", "WLBS_ALREADY", "WLBS_STOPPED", "WLBS_DRAINING" } : ToInstance, ValueMap { "1000", "1004", "1013", "1001", "1005", "1009" } : ToInstance ] uint32 Enable( [IN] uint32 Port ); [ Implemented, Description("Disable new traffic handling for rule containing the specified port." "Port may take any value from 0 to 65,535 or " "0xFFFFFFFF to specify all ports.") : Amended, Values { "WLBS_OK", "WLBS_NOT_FOUND", "WLBS_SUSPENDED", "WLBS_ALREADY", "WLBS_STOPPED", "WLBS_DRAINING" } : ToInstance, ValueMap { "1000", "1004", "1013", "1001", "1005", "1009" } : ToInstance ] uint32 Drain( [IN] uint32 Port ); [ Implemented, Description("Enter draining mode on specified nodes. WlbsDrainStop affects all ports.") : Amended, Values { "WLBS_OK", "WLBS_SUSPENDED", "WLBS_ALREADY", "WLBS_STOPPED" } : ToInstance, ValueMap { "1000", "1013", "1001", "1005" } : ToInstance ] uint32 DrainStop(); [ Implemented, Description("Resume cluster operation control.") : Amended, Values { "WLBS_OK", "WLBS_ALREADY" } : ToInstance, ValueMap { "1000", "1001" } : ToInstance ] uint32 Resume(); [ Implemented, Description("Start cluster operations.") : Amended, Values { "WLBS_OK", "WLBS_SUSPENDED", "WLBS_ALREADY", "WLBS_DRAIN_STOP", "WLBS_BAD_PARAMS" } : ToInstance, ValueMap { "1000", "1013", "1001", "1002", "1003" } : ToInstance ] uint32 Start(); [ Implemented, Description("Stop cluster operations.") : Amended, Values { "WLBS_OK", "WLBS_SUSPENDED", "WLBS_ALREADY", "WLBS_DRAIN_STOP" } : ToInstance, ValueMap { "1000", "1013", "1001", "1002" } : ToInstance ] uint32 Stop(); [ Implemented, Description("Suspend cluster operation control.") : Amended, Values { "WLBS_OK", "WLBS_STOPPED", "WLBS_ALREADY", "WLBS_DRAIN_STOP" } : ToInstance, ValueMap { "1000", "1005", "1001", "1002" } : ToInstance ] uint32 Suspend(); }; // ***************************************************************************** // MicrosoftNLB_ClusterSetting // ***************************************************************************** [ Dynamic, Provider("Microsoft|NLB_Provider|V1.0"), Description("This holds and modifies cluster specific configuration information." "The provider will only return the instance for " "this class that corresponds to the node upon which it resides." "Consequently, to configure a node, the client must explicitly " "connect to that node. Modified values do not take affect until " "LoadAllSettings is invoked from this class or the " "MicrosoftNLB_NodeSetting class.") : Amended, LOCALE(0x409) ] class MicrosoftNLB_ClusterSetting : CIM_Setting { //Properties [ Key, Read, Description("The name of the host to which this setting applies"): ToInstance Amended ] string Name; [ Description("This property specifies a full Internet name for the Network " "Load Balancing cluster (for example, cluster.domain.com). This " "name is used for the cluster as a whole, and should be the " "same for all hosts in the cluster. ") : Amended ] string ClusterName; [ ModelCorrespondence {"CIM_Cluster.InterconnectAddress"}, Description("This property specifies the cluster's primary IP address " "in standard Internet dotted notation (for example, w.x.y.z).") : Amended ] string ClusterIPAddress; [ Description("This property denotes the subnet mask.") : Amended ] string ClusterNetworkMask; [ Read, Description("This property denotes the cluster MAC address.") : Amended ] string ClusterMACAddress; [ Description("This property specifies whether or not a multicast MAC " "address should be used for cluster operations. If this " "option is enabled, Network Load Balancing converts the " "cluster MAC address belonging to the cluster adapter into " "a multicast address. It also ensures that the cluster's " "primary IP address resolves to this multicast address as " "part of the ARP protocol. At the same time, the adapter " "can now use its original, built-in MAC address, which, " "in unicast mode, was disabled. ") : Amended ] Boolean MulticastSupportEnabled; [ Description("This property specifies whether remote-control operations " "are enabled. When disabled, the Service methods will not function" "for remote HostIDs. Remote control is disabled by default.") : Amended ] Boolean RemoteControlEnabled; [ Description("If set to TRUE, send IGMP join periodically.") : Amended ] Boolean IgmpSupport; [ Description("If set to TRUE, generate IGMP multicast IP from cluster IP.") : Amended ] Boolean ClusterIPToMulticastIP; [ Description("The cluster's multicast IP address for IGMP.") : Amended ] string MulticastIPAddress; [ Read, Description("This is the GUID of the adapter NLB is bound to.") : Amended ] string AdapterGuid; [ Description("This property specifies if the cluster that this " "network adapter is a part of, is operating in the" "Bi-Directional Affinity mode.") : Amended ] Boolean BDATeamActive; [ Description("This property specifies the Bi-Directional Affinity " "team identifier of the cluster that this network " "adapter is a part of. The value of this property " "must be a GUID") : Amended ] string BDATeamId; [ Description("This property specifies if the cluster that this " "network adapter is a part of, is the Master cluster.") : Amended ] Boolean BDATeamMaster; [ Description("This property specifies whether to reverse hash " "on the cluster that this network adapter is a part of.") : Amended ] Boolean BDAReverseHash; //Methods [ Implemented, Description("Sets the remote control password.") : Amended ] void SetPassword( [IN] string Password ); //Methods [ Implemented, Description("This method causes the NLB driver to load with all the values " "that are set in ALL of the the setting classes, including the " "MicrosoftNLB_NodeSetting and the port rule classes. If the system " "is Windows NT4, then the method will return a reboot value.") : Amended, Values { "WLBS_OK", "WLBS_REBOOT" } : ToInstance, ValueMap { "1000", "1050" } : ToInstance ] uint32 LoadAllSettings(); [ Implemented, Description("This method resets all of the properties for this class to " "their default values. The values are not commited to the NLB " "driver.") : Amended ] void SetDefaults(); }; // ***************************************************************************** // MicrosoftNLB_NodeSetting // ***************************************************************************** [ Dynamic, Provider("Microsoft|NLB_Provider|V1.0"), Description("This holds and modifies node specific configuration information." "The provider will only return the instance for " "this class that corresponds to the node upon which it resides." "Consequently, to configure a node, the client must explicitly " "connect to that node. Modified values do not take affect until " "LoadAllSettings is invoked from this class or the " "MicrosoftNLB_ClusterSetting class.") : Amended, LOCALE(0x409) ] class MicrosoftNLB_NodeSetting : CIM_Setting { //Properties [ Key, Read, Description("The name of the host to which this setting applies"): ToInstance Amended ] string Name; [ ModelCorrespondence {"MicrosoftNLB_Node.DedicatedIPAddress"}, Description("This property specifies this host's unique IP address used " "for network traffic not associated with the cluster (for " "example, Telnet access to a specific host within the cluster).") : Amended ] string DedicatedIPAddress; [ Description("This property denotes the subnet mask.") : Amended ] string DedicatedNetworkMask; [ Read, Description("This is the number of defined port rules.") : Amended ] uint32 NumberOfRules; [ ModelCorrespondence {"MicrosoftNLB_Node.HostPriority"}, Description("This property specifies a host's unique priority for handling " "default network traffic for TCP and UDP ports that are not " "included in the Port rule configuration. It is used " "in case a host within the cluster goes offline, and determines " "which host within the cluster will take over handling this " "traffic if required. The allowed values for host priority " "range from 1 to the maximum number of hosts. Lower values " "indicate higher priorities (where 1 is the highest priority)." "Each host within the cluster must specify a unique host priority. " "NOTE: This has no affect on traffic that is load balanced. " "It only applies to traffic that is not handled by a " "port rule." ) : Amended ] uint32 HostPriority; [ Description("The AliveMsgPeriod value holds the message exchange period in " "milliseconds.You should pick this number " "based on your failover requirements. A longer message " "exchange period will reduce the networking overhead needed " "to maintain fault tolerance, but it will increase the " "failover delay.") : Amended ] uint32 AliveMessagePeriod; [ Description("The AliveMsgTolerance value specifies how " "many exchanged messages from a host can be missed before the " "cluster initiates convergence. You should pick this number " "based on your failover requirements. Increasing the number of " "message exchanges prior to convergence will reduce the number " "of unnecessary convergence initiations due to transient " "network congestion, but it will also increase the " "failover delay. ") : Amended ] uint32 AliveMessageTolerance; [ Description("If set to TRUE, join cluster on boot.") : Amended ] Boolean ClusterModeOnStart; [ Description("This property specifies the UDP port that is used to " "receive remote control commands. By default, these are " "ports 1717 and 2504 at the cluster IP address") : Amended ] uint32 RemoteControlUDPPort; [ Description("If true, mangle source MAC address to prevent switch " "learning. Use a value of false if the cluster is on a hub: " "optimizes switch performance by re-enabling learning.") : Amended ] Boolean MaskSourceMAC; [ Description("The number of connection tracking descriptors per allocation.") : Amended ] uint32 DescriptorsPerAlloc; [ Description("The maximum number of connection tracking descriptors " "per allocation.") : Amended ] uint32 MaxDescriptorsPerAlloc; [ Description("The number of actions per allocation.") : Amended ] uint32 NumActions; [ Description("The number of packets per allocation.") : Amended ] uint32 NumPackets; [ Description("The number of heartbeats per allocation.") : Amended ] uint32 NumAliveMessages; [ Read, Description("This is the GUID of the adapter NLB is bound to.") : Amended ] string AdapterGuid; //Methods [ Implemented, Description("This method provides an optimized means for obtaining " "the port rule which encapsulates the input Port number.") : Amended ] void GetPortRule([IN] UINT32 Port, [OUT] MicrosoftNLB_PortRule PortRule); [ Implemented, Description("This method causes the NLB driver to load with all the values " "that are set in ALL of the the setting classes, including the " "MicrosoftNLB_ClusterSetting and the port rule classes. If the system " "is Windows NT4, then the method will return a reboot value.") : Amended, Values { "WLBS_OK", "WLBS_REBOOT" } : ToInstance, ValueMap { "1000", "1050" } : ToInstance ] uint32 LoadAllSettings(); [ Implemented, Description("This method resets all of the properties for this class to " "their default values. The values are not committed to the NLB " "driver.") : Amended ] void SetDefaults(); }; // ***************************************************************************** // MicrosoftNLB_PortRule // ***************************************************************************** [ Abstract, Provider("Microsoft|NLB_Provider|V1.0"), Description("This class represents a rule for how TCP/IP traffic " "is handled. The provider will only return the instances for " "this class that correspond to the node upon which it resides." "Consequently, to configure a node, the client must explicitly " "connect to that node.") : Amended, LOCALE(0x409) ] class MicrosoftNLB_PortRule : CIM_Setting { [ Key, Override("Name"), Description("The name of the host to which this port rule applies"): ToInstance Amended ] string Name; [ Key, Description("The starting port number to which this rule applies.") : Amended ] uint32 StartPort = 0; [ Description("The ending port number to which this rule applies.") : Amended ] uint32 EndPort = 65535; [ Values {"TCP", "UDP", "Both"}, ValueMap {"1", "2", "3"} , Description("This specifies the protocol for which this rule applies. " "The possible values include TCP, UDP or Both ") : Amended ] uint32 Protocol = 3; [ Read, Description("This is the GUID of the adapter NLB is bound to.") : Amended ] string AdapterGuid; [ Static, Implemented, Description("This method resets the node's port rule configuration " "to the default. The new configuration is not committed " "to the driver.") : Amended, Values { "WLBS_OK" } : ToInstance, ValueMap { "1000" } : ToInstance ] void SetDefaults([IN] MicrosoftNLB_Node ref Node); }; // ***************************************************************************** // MicrosoftNLB_PortRuleFailover // ***************************************************************************** [ Dynamic, Provider("Microsoft|NLB_Provider|V1.0"), LOCALE(0x409) ] class MicrosoftNLB_PortRuleFailover : MicrosoftNLB_PortRule { [ Description("This property specifies the local host's priority for " "handling the networking traffic for this port " "rule. The host with the highest handling priority (lowest " "numerical value) for this rule among the current members of " "the cluster will handle all of the traffic for this rule. " "The allowed values range from 1, the highest priority, to " "the maximum number of hosts allowed. This value must be " "unique for all hosts in the cluster.") : Amended, LOCALE(0x409) ] uint32 Priority = 1; }; // ***************************************************************************** // MicrosoftNLB_PortRuleLoadbalanced // ***************************************************************************** [ Dynamic, Provider("Microsoft|NLB_Provider|V1.0"), LOCALE(0x409) ] class MicrosoftNLB_PortRuleLoadbalanced : MicrosoftNLB_PortRule { [ Description("This property specifies that the host accepts an equal " "portion of the load-balanced traffic in multiple-host " "filtering mode for this port rule. If this value is true, " "then the value for LoadWeight is ignored.") : Amended ] Boolean EqualLoad = True; [ Description("This property specifies the relative weight of load-balanced " "network traffic that this host should handle for the " "associated port rule. Allowed values range from 0 " "(zero) to 100. To prevent a host from handling any " "network traffic, set the load weight to 0 (zero). ") : Amended ] uint32 LoadWeight = 50; [ Values {"None", "Single", "ClassC"} : Amended, ValueMap{"0", "1", "2"}, Description("This option specifies the client affinity. The possible " "values are None, Single and Class C. Single and Class C " "are used to ensure that all network traffic from a " "particular client be directed to the same cluster host.") : Amended ] uint32 Affinity = 1; }; // ***************************************************************************** // MicrosoftNLB_PortRuleDisabled // ***************************************************************************** [ Dynamic, Provider("Microsoft|NLB_Provider|V1.0"), Description("This class represents a disabled port rule."): Amended, LOCALE(0x409) ] class MicrosoftNLB_PortRuleDisabled : MicrosoftNLB_PortRule { }; // ***************************************************************************** // ***************************************************************************** // SCHEMA SPECIFIC ASSOCIATIONS // ***************************************************************************** // ***************************************************************************** // ***************************************************************************** // MicrosoftNLB_NodeSettingPortRule // ***************************************************************************** [ Association, Dynamic: ToInstance, provider("Microsoft|NLB_Provider|V1.0"), Description( "This associates rules to a NodeSetting." ) : Amended, LOCALE(0x409) ] class MicrosoftNLB_NodeSettingPortRule : CIM_Component { [ Key, Override("GroupComponent"), Description ("The MicrosoftNLB_NodeSetting class.") : Amended, Min (1) ] MicrosoftNLB_NodeSetting REF GroupComponent; [ Key, Override("PartComponent"), Description ( "The MicrosoftNLB_PortRule") : Amended ] MicrosoftNLB_PortRule REF PartComponent; }; // ***************************************************************************** // MicrosoftNLB_ClusterClusterSetting // ***************************************************************************** [ Association, Dynamic: ToInstance, Provider("Microsoft|NLB_Provider|V1.0"), Description ( "This associates a MicrosoftNLB_ClusterSetting to a MicrosoftNLB_Cluster." ) : Amended, LOCALE(0x409) ] class MicrosoftNLB_ClusterClusterSetting : CIM_ElementSetting { [ Key, Override("Element"), Description ("A cluster") : Amended, Min (1) ] MicrosoftNLB_Cluster REF Element; [ Key, Override("Setting"), Description ( "The cluster-related settings for a node in a cluster.") : Amended ] MicrosoftNLB_ClusterSetting REF Setting; }; // ***************************************************************************** // MicrosoftNLB_NodeNodeSetting // ***************************************************************************** [ Association, Dynamic: ToInstance, Provider("Microsoft|NLB_Provider|V1.0"), Description ( "This associates a MicrosoftNLB_NodeSetting to a MicrosoftNLB_Node." ) : Amended, LOCALE(0x409) ] class MicrosoftNLB_NodeNodeSetting : CIM_ElementSetting { [ Key, Override("Element"), Description ("A node") : Amended, Min (1) ] MicrosoftNLB_Node REF Element; [ Key, Override("Setting"), Description ( "The settings for a node") : Amended ] MicrosoftNLB_NodeSetting REF Setting; }; // ***************************************************************************** // MicrosoftNLB_ParticipatingNode // ***************************************************************************** [ Association, Dynamic: ToInstance, Provider("Microsoft|NLB_Provider|V1.0"), LOCALE(0x409) ] class MicrosoftNLB_ParticipatingNode : CIM_ParticipatingCS { [ Key, Override ("Antecedent"), Description ( "The computer system which participates in the cluster." ) : Amended, Min (1) ] MicrosoftNLB_Node REF Antecedent; [ Key, Override ("Dependent"), Description ("The Cluster.") : Amended ] MicrosoftNLB_Cluster REF Dependent; }; // ***************************************************************************** // MicrosoftNLB_ExtendedStatus // ***************************************************************************** [ Dynamic : ToInstance, Description("The provider utilizes this class to report NLB " "specific error codes.") : Amended, Provider("Microsoft|NLB_Provider|V1.0"), LOCALE(0x409) ] class MicrosoftNLB_ExtendedStatus : __ExtendedStatus { [ Override("StatusCode"), Description("NLB and Winsock error codes are returned in this property." "The Values and ValueMap qualifiers map the NLB defined " "constants, but do not include Winsock error codes.") : Amended, Values { "WLBS_BAD_PARAMS" , "WLBS_NOT_FOUND" , "WLBS_BAD_PASSW" , "WLBS_IO_ERROR" , "WLBS_TIMEOUT" , "WLBS_PORT_OVERLAP" , "WLBS_BAD_PORT_PARAMS", "WLBS_MAX_PORT_RULES" , "WLBS_REG_ERROR" } : ToInstance, ValueMap { "1003", "1004", "1101", "1102", "1103", "1150", "1151", "1152", "1154" } : ToInstance ] uint32 StatusCode; };