Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

2119 lines
85 KiB

/*
Copyright (c) 1997-2003 Microsoft Corporation, All Rights Reserved
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";
HostingModel = "NetworkServiceHost";
};
instance of __InstanceProviderRegistration
{
Provider = $P;
SupportsGet = "TRUE";
SupportsPut = "TRUE";
SupportsDelete = "TRUE";
SupportsEnumeration = "TRUE";
};
instance of __MethodProviderRegistration
{
Provider = $P;
};
/*
This following subset of definitions from wmi.mof(path in build : %windir%\system32\wbem,
path in source code control : nt\admin\wmi\wbem\Providers\MOFs\wmi.mof) are necessary to publish
NLB events under the root\microsoftnlb namespace. They were originally in nlbwmi.mof. They had to
be removed from nlbwmi.mof due to the following reason:
nlbwmi.mof is compiled into a binary mof file (nlbwmi.bmf) and included as a resource into
the driver wlbs.sys. Having these definitions in the binary mof file caused failures
due to Windows.NET server WMI bug:
"707426: WDM Provider removes the classes in wrong namespace when 2 drivers have same classes in diff. namespace"
The above bug was not fixed. So, we had to work around it removing these definitions
from nlbwmi.mof. Marius Sutara (WMI Dev) advised us of this work around and filed bug
"713031: BINARY MOF: unneccessary registrations present in mof file may cause unspecified failures"
so that we may check-in this work around.
*/
/******** BEGINNING OF KERNEL MODE NLB WMI EVENT SPECIFIC DEFINITIONS ************/
Instance of __Win32Provider as $P1
{
Name = "WMIProv";
ClsId = "{D2D588B5-D081-11d0-99E0-00C04FC2F8EC}";
ClientLoadableCLSID = "{35B78F79-B973-48c8-A045-CAEC732A35D5}";
PerUserInitialization = "TRUE";
UnloadTimeOut = "00000000000500.000000:000";
HostingModel = "LocalSystemHost";
};
Instance of __InstanceProviderRegistration
{
Provider = $P1;
SupportsGet = "TRUE";
SupportsPut = "TRUE";
SupportsEnumeration = "TRUE";
SupportsDelete = "FALSE";
};
Instance of __MethodProviderRegistration
{
Provider = $P1;
};
Instance of __Win32Provider as $P2
{
Name = "WMIEventProv";
ClsId = "{0725C3CB-FEFB-11d0-99F9-00C04FC2F8EC}";
ImpersonationLevel = 1;
PerUserInitialization = "TRUE";
HostingModel = "LocalSystemHost";
};
[Locale(1033)]
class WMIEvent : __ExtrinsicEvent
{
};
Instance of __EventProviderRegistration
{
Provider = $P2;
EventQueryList = {"select * from WMIEvent"};
};
/******** END OF KERNEL MODE NLB WMI EVENT SPECIFIC DEFINITIONS ************/
// =============================================================================
// 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;
[ Read,
Description ( "The full computer name (consisting of the host name and domain name) "
"of the host participating in the cluster. However, if the full name "
"exceeds 100 characters, then, only the host name is present. An empty"
"string will be returned in the case of a failure.") : Amended
]
string ComputerName;
//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("Disable all traffic handling for rule containing the "
"specified virtual IP address and port. The values of virtual Ip "
"address to specify 'All Vip' (aka 'Rest of the VIPs') and "
"'Every Vip' are '255.255.255.255' and '0.0.0.0' respectively. Port may "
"take any value from 0 to 65,535 or 0xFFFFFFFF to specify all ports."
"This method will fail when called on instances of objects that "
"represent remote nodes.") : 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 DisableEx( [IN] string VirtualIpAddress, [IN] uint32 Port );
[
Implemented,
Description("Enable all traffic handling for rule containing the "
"specified virtual IP address and port. The values of virtual Ip "
"address to specify 'All Vip' (aka 'Rest of the VIPs') and "
"'Every Vip' are '255.255.255.255' and '0.0.0.0' respectively. Port may "
"take any value from 0 to 65,535 or 0xFFFFFFFF to specify all ports."
"This method will fail when called on instances of objects that "
"represent remote nodes.") : 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 EnableEx( [IN] string VirtualIpAddress, [IN] uint32 Port );
[
Implemented,
Description("Disable new traffic handling for rule containing the "
"specified virtual IP address and port. The values of virtual Ip "
"address to specify 'All Vip' (aka 'Rest of the VIPs') and "
"'Every Vip' are '255.255.255.255' and '0.0.0.0' respectively. Port may "
"take any value from 0 to 65,535 or 0xFFFFFFFF to specify all ports."
"This method will fail when called on instances of objects that "
"represent remote nodes.") : 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 DrainEx( [IN] string VirtualIpAddress, [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;
[
Description("This property specifies whether identity heartbeats are "
"transmitted. It is on by default.") : Amended
]
Boolean IdentityHeartbeatEnabled;
//Methods
[
Implemented,
Description("Sets the remote control password. Before calling "
"this method, it is highly recommended that the "
"authentication level be set to RPC_C_AUTHN_LEVEL_PKT_PRIVACY "
"in the call to CoSetProxyBlanket() or CoInitializeSecurity(). "
"This is so that the password string is encrypted during "
"its transfer from the client machine to the server machine, thus "
"mitigating the threat of disclosure.") : 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("If set to TRUE, do NOT join cluster and suspend all ways to "
"control the operation of the cluster until a \"resume\" "
"operation is performed. The value of this property is"
"ignored if the \"ClusterModeOnStart\" property is set"
"to \"TRUE\"") : Amended
]
Boolean ClusterModeSuspendOnStart;
[
Description("If set to TRUE, If all ways to control the operation of the "
"cluster is suspended, then, upon a reboot of the system, the "
"suspension will persist") : Amended
]
Boolean PersistSuspendOnReboot;
[
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("If set to TRUE, all ICMP traffic will be filtered by the cluster "
"and accepted by only a single host. If FALSE, all hosts in the "
"cluster will accept all ICMP traffic (this is the default behavior)") : Amended
]
uint32 FilterIcmp;
[
Description("The timeout value, in seconds, of a TCP connection descriptor") : Amended
]
uint32 TcpDescriptorTimeout;
[
Description("The timeout value, in seconds, of a IpSec connection descriptor") : Amended
]
uint32 IpSecDescriptorTimeout;
[
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 provides an optimized means for obtaining "
"the port rule which encapsulates the input Virtual IP address and "
"Port number. The value of virtual Ip address to specify 'All Vip'"
"(aka 'Rest of the VIPs') is '255.255.255.255'") : Amended
]
void GetPortRuleEx([IN] string VirtualIpAddress, [IN] UINT32 Port, [OUT] MicrosoftNLB_PortRuleEx 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
{
};
// *****************************************************************************
// MicrosoftNLB_PortRuleEx
// *****************************************************************************
[ Dynamic,
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. Enhancements in this class over the "
"MicrosoftNLB_PortRule class include : Addition of VirtualIpAddress "
"property (also a key), Aggregation of MicrosoftNLB_PortRuleFailover, "
"MicrosoftNLB_PortRuleLoadbalanced and MicrosoftNLB_PortRuleDisabled "
"classes, Addition of FilteringMode property.") : Amended,
LOCALE(0x409)
]
class MicrosoftNLB_PortRuleEx
{
[ Key,
Override("Name"),
Description("The name of the host to which this port rule applies"): ToInstance
Amended
]
string Name;
[ Key,
Description("The virtual IP address to which this rule applies. "
"The value of virtual Ip address to specify 'All Vip'"
"(aka 'Rest of the VIPs') is '255.255.255.255'") : Amended
]
string VirtualIpAddress = "255.255.255.255";
[ 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;
[ Values {"Single Host", "Multiple Host", "Disabled"},
ValueMap {"1", "2", "3"} ,
Description("This specifies the filtering mode for this rule. "
"The possible values are 'Multiple Host', 'Single Host' and 'Disabled'. "
"If the value is 'Multiple Host', the value for Priority is ignored. "
"If the value is 'Single Host', the values for EqualLoad, LoadWeight "
"and Affinity are ignored. If the value is 'Disabled', the values for"
"EqualLoad, LoadWeight, Affinity and Priority are ignored.") : Amended
]
uint32 FilteringMode = 2;
[ 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;
[ 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;
[ Read,
Description("The current status of the port rule. If this port rule was "
"created using the WMI provider and the LoadAllSettings() "
"method of the MicrosoftNLB_NodeSetting class was NOT called,"
"then, this property will return NLB_PORT_RULE_NOT_FOUND.") : Amended,
Values {
"NLB_PORT_RULE_NOT_FOUND",
"NLB_PORT_RULE_ENABLED",
"NLB_PORT_RULE_DISABLED",
"NLB_PORT_RULE_DRAINING"
} : ToInstance,
ValueMap {
"0",
"1",
"2",
"3"
} : ToInstance
]
uint32 PortState;
[
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);
};
// *****************************************************************************
// *****************************************************************************
// 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;
};
/*
Include mof file containing NLB driver wmi event class definitions.
This is so that the compiled wlbsprov.mof has the event class defintions
and hence will be mofcomp-ed and added to the WMI repository. This is
needed to publish the events under the root\microsoftnlb namespace.
*/
#include ("..\driver\nlbwmi.mof")
/*
This following definition from wmi.mof is necessary to publish NLB events under the root\microsoftnlb namespace.
It is placed here instead of at the top of this file (where other such definitions are placed), because
Ivan Brugiolo (WMI Dev) advised that "__ClassProviderRegistration" must be at the bottom of the mof file.
Hence it is placed here.
*/
Instance of __ClassProviderRegistration
{
Provider = $P1;
InteractionType = 1;
ResultSetQueries = {"select * from meta_class"};
ReferencedSetQueries = {"select * from meta_class"};
UnsupportedQueries;
SupportsGet = "TRUE";
SupportsPut = "FALSE";
SupportsEnumeration = "TRUE";
SupportsDelete = "FALSE";
};