Source code of Windows XP (NT5)
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.

1746 lines
68 KiB

  1. /*
  2. Copyright(c) 1999 Microsoft Corporation
  3. Schema Name:
  4. MicrosoftNLB
  5. Abstract:
  6. Network Load Balancing MOF Specification.
  7. Created by drbeck.
  8. */
  9. #pragma autorecover
  10. #pragma classflags ("forceupdate")
  11. #pragma namespace ("\\\\.\\Root")
  12. instance of __NameSpace
  13. {
  14. Name = "MicrosoftNLB" ;
  15. } ;
  16. #pragma namespace ( "\\\\.\\Root\\MicrosoftNLB" )
  17. instance of __Win32Provider as $P
  18. {
  19. Name = "Microsoft|NLB_Provider|V1.0";
  20. ClsId = "{FB223274-D72E-11d2-A420-00C04F68FE28}";
  21. ImpersonationLevel = 1;
  22. PerUserInitialization = "FALSE";
  23. };
  24. instance of __InstanceProviderRegistration
  25. {
  26. Provider = $P;
  27. SupportsGet = "TRUE";
  28. SupportsPut = "TRUE";
  29. SupportsDelete = "TRUE";
  30. SupportsEnumeration = "TRUE";
  31. };
  32. instance of __MethodProviderRegistration
  33. {
  34. Provider = $P;
  35. };
  36. // =============================================================================
  37. // CIM_ManagedSystemElement
  38. // =============================================================================
  39. [ Abstract,
  40. Description ( "The CIM_ManagedSystemElement class is the base class for the "
  41. "system element hierarchy. Membership criteria: Any "
  42. "distinguishable component of a system is a candidate for "
  43. "inclusion in this class. \nExamples: software components, such "
  44. "as files; and devices, such as disk drives and controllers, "
  45. "and physical components such as chips and cards." ) : Amended,
  46. LOCALE(0x409)
  47. ]
  48. class CIM_ManagedSystemElement
  49. {
  50. [ MaxLen (64),
  51. Description ( "The Caption property is a short textual description "
  52. "(one-line string) of the object." ) : Amended
  53. ]
  54. string Caption;
  55. [ Description ( "The Description property provides a textual description of "
  56. "the object. ") : Amended
  57. ]
  58. string Description;
  59. [ Description ( "The InstallDate property is a datetime value indicating when "
  60. "the object was installed. A lack of a value does not indicate "
  61. "that the object is not installed." ) : Amended,
  62. MappingStrings {"MIF.DMTF|ComponentID|001.5"}
  63. ]
  64. datetime InstallDate;
  65. [ MaxLen (256),
  66. Description ( "The Name property defines the label by which the object is "
  67. "known. When subclassed, the Name property can be overridden "
  68. "to be a Key property." ) : Amended
  69. ]
  70. string Name;
  71. [ MaxLen (10),
  72. Description ( "The Status property is a string indicating the current status "
  73. "of the object. Various operational and non-operational "
  74. "statuses can be defined. Operational statuses are \"OK\", "
  75. "\"Degraded\" and \"Pred Fail\". \"Pred Fail\" indicates that "
  76. "an element may be functioning properly but predicting a "
  77. "failure in the near future. An example is a SMART-enabled "
  78. "hard drive. Non-operational statuses can also be specified. "
  79. "These are \"Error\", \"Starting\", \"Stopping\" and "
  80. "\"Service\". The latter, \"Service\", could apply during "
  81. "mirror-resilvering of a disk, reload of a user permissions "
  82. "list, or other administrative work. Not all such work is "
  83. "on-line, yet the managed element is neither \"OK\" nor in "
  84. "one of the other states.") : Amended ToSubclass,
  85. ValueMap { "OK", "Error", "Degraded", "Unknown", "Pred Fail",
  86. "Starting", "Stopping", "Service" } : Amended
  87. ]
  88. string Status;
  89. };
  90. // =============================================================================
  91. // CIM_LogicalElement
  92. // =============================================================================
  93. [ Abstract,
  94. Description ( "The CIM_LogicalElement class is the base class for all the "
  95. "components of the system that represent abstract system "
  96. "components.\nExample: profiles, processes, or system "
  97. "capabilities in the form of logical devices.") : Amended,
  98. LOCALE(0x409)
  99. ]
  100. class CIM_LogicalElement : CIM_ManagedSystemElement
  101. {
  102. };
  103. // =============================================================================
  104. // CIM_Configuration
  105. // =============================================================================
  106. [ Description ( "The Configuration object allows the grouping of sets of "
  107. "parameters (defined in CIM_Setting objects) and dependencies "
  108. "for one or more managed system elements. The Configuration "
  109. "object represents a certain behavior, or a desired functional "
  110. "state for the managed system elements. The desired functional "
  111. "state is typically driven by external requirements such as "
  112. "time or location. For example, to connect to a mail system from "
  113. "'home', a dependency on a modem exists, but a dependency on a "
  114. "network adapter exists at 'work'. Settings for the pertinent "
  115. "logical devices (in this example, POTS modem and network "
  116. "adapter) can be defined and aggregated by CIM_Configuration. "
  117. "Therefore, two 'Connect to Mail' configurations may be defined "
  118. "grouping the relevant dependencies and CIM_Setting objects." )
  119. : Amended, LOCALE(0x409)
  120. ]
  121. class CIM_Configuration
  122. {
  123. [ Key,
  124. MaxLen (256),
  125. Description ( "The label by which the CIM_Configuration object is known.")
  126. : Amended
  127. ]
  128. string Name;
  129. [ MaxLen (64),
  130. Description ( "A short textual description (one-line string) of the "
  131. "CIM_Configuration object") : Amended
  132. ]
  133. string Caption;
  134. [ Description ("A textual description of the CIM_Configuration object.") : Amended
  135. ]
  136. string Description;
  137. };
  138. // =============================================================================
  139. // CIM_ElementConfiguration
  140. // =============================================================================
  141. [ Association,
  142. Description ( "This association relates a CIM_Configuration object to one "
  143. "or more managed system elements. The CIM_Configuration object "
  144. "represents a certain behavior, or a desired functional state "
  145. "for the associated managed system elements.")
  146. : Amended, LOCALE(0x409)
  147. ]
  148. class CIM_ElementConfiguration
  149. {
  150. [ Description ("The managed system element") : Amended
  151. ]
  152. CIM_ManagedSystemElement REF Element;
  153. [Description ( "The CIM_Configuration object that groups the settings and "
  154. "dependencies associated with the managed system element")
  155. : Amended
  156. ]
  157. CIM_Configuration REF Configuration;
  158. };
  159. // =============================================================================
  160. // CIM_Setting
  161. // =============================================================================
  162. [ Abstract,
  163. Description ( "The CIM_Setting class represents configuration-related and "
  164. "operational parameters for one or more managed system"
  165. "element(s). A managed system element may have multiple setting "
  166. "objects associated with it. The current operational values "
  167. "for an element's parameters are reflected by properties in "
  168. "the element itself or by properties in its associations. "
  169. "These properties do not have to be the same values present "
  170. "in the CIM_Setting object. For example, a modem may have a "
  171. "setting baud rate of 56Kb/sec but be operating "
  172. "at 19.2Kb/sec." ) : Amended, LOCALE(0x409)
  173. ]
  174. class CIM_Setting
  175. {
  176. [ MaxLen (256),
  177. Description ( "The identifier by which the CIM_Setting object is known.")
  178. : Amended
  179. ]
  180. string SettingID;
  181. [ MaxLen (64),
  182. Description ( "A short textual description (one-line string) of the "
  183. "CIM_Setting object." ) : Amended
  184. ]
  185. string Caption;
  186. [ Description ( "A textual description of the CIM_Setting object.") : Amended
  187. ]
  188. string Description;
  189. };
  190. // =============================================================================
  191. // CIM_ElementSetting
  192. // =============================================================================
  193. [ Association,
  194. Description ( "CIM_ElementSetting represents the association between managed"
  195. "system elements and the setting class(es) defined for them." )
  196. : Amended, LOCALE(0x409)
  197. ]
  198. class CIM_ElementSetting
  199. {
  200. [ Description ("The CIM_ManagedSystemElement reference represents the role "
  201. "of the CIM_ManagedSystemElement object of the "
  202. "CIM_ElementSetting association. Role: The associated managed "
  203. "system element provides the element that implements the "
  204. "element setting.") : Amended,
  205. Min (1)
  206. ]
  207. CIM_ManagedSystemElement REF Element;
  208. [ Description ( "The CIM_Setting reference represents the role of the "
  209. "CIM_Setting object of the CIM_ElementSetting association. "
  210. "Role: The associated setting provides the setting that "
  211. "implements the element setting.") : Amended
  212. ]
  213. CIM_Setting REF Setting;
  214. };
  215. // ===================================================================
  216. // CIM_SettingContext
  217. // ===================================================================
  218. [ Association,
  219. Aggregation,
  220. Description ( "This relationship associates a setting with one or "
  221. "more configuration objects. For example, a network "
  222. "adapter's settings could change based on the site/network "
  223. "to which its hosting computer system is attached.")
  224. : Amended, LOCALE(0x409)
  225. ]
  226. class CIM_SettingContext
  227. {
  228. [ Aggregate,
  229. Description ( "The configuration object that aggregates the setting")
  230. : Amended
  231. ]
  232. CIM_Configuration REF Context;
  233. [ Description ("An aggregated setting.") : Amended
  234. ]
  235. CIM_Setting REF Setting;
  236. };
  237. // =============================================================================
  238. // CIM_System
  239. // =============================================================================
  240. [ Abstract,
  241. Description ( "A logical element that aggregates an enumerable set of "
  242. "managed system elements. The aggregation operates as an "
  243. "functional whole. Within any particular subclass of CIM_System, "
  244. "there is a well-defined list of CIM_ManagedSystemElement "
  245. "classes whose instances must be aggregated." )
  246. : Amended, LOCALE(0x409)
  247. ]
  248. class CIM_System : CIM_LogicalElement
  249. {
  250. [ CIM_Key,
  251. MaxLen (256),
  252. Description ( "The CreationClassName property indicates the name of the "
  253. "class or the subclass used in the creation of an instance. "
  254. "When used with the other key properties of this class, this "
  255. "property allows all instances of this class and its "
  256. "subclasses to be uniquely identified.") : Amended
  257. ]
  258. string CreationClassName;
  259. [ Override ("Name"),
  260. Key,
  261. MaxLen (256),
  262. Description ( "The inherited Name property serves as key of a CIM_System "
  263. "instance in an enterprise environment.") : Amended
  264. ]
  265. string Name;
  266. [ MaxLen (64),
  267. Description ( "The CIM_System object and its derivatives are top level "
  268. "objects of CIM. They provide the scope for numerous "
  269. "components. Having unique system keys is required. A "
  270. "heuristic can be defined in individual system subclasses "
  271. "to attempt to always generate the same system name key. "
  272. "The NameFormat property identifies how the system name "
  273. "was generated, using the subclass' heuristic.") : Amended
  274. ]
  275. string NameFormat;
  276. [ MaxLen (256),
  277. Description ( "A string that provides information on how the primary "
  278. "system owner can be reached (e.g. phone number, email "
  279. "address, ...)." ) : Amended,
  280. MappingStrings {"MIF.DMTF|General Information|001.3"}
  281. ]
  282. string PrimaryOwnerContact;
  283. [ MaxLen (64),
  284. Description ( "The name of the primary system owner.") : Amended,
  285. MappingStrings { "MIF.DMTF|General Information|001.4" }
  286. ]
  287. string PrimaryOwnerName;
  288. [ Description ( "A collection of strings that specify the roles this "
  289. "system plays in the IT-environment.") : Amended
  290. ]
  291. string Roles[];
  292. };
  293. // =============================================================================
  294. // CIM_ComputerSystem
  295. // =============================================================================
  296. [ Abstract,
  297. Description ( "A class derived from CIM_System that is a special collection "
  298. "of CIM_ManagedSystemElement instances. This collection "
  299. "provides compute capabilities and serves as aggregation point "
  300. "to associate one or more of the following elements: file "
  301. "system, operating system, processor and memory (volatile "
  302. "and/or non-volatile storage).") : Amended, LOCALE(0x409)
  303. ]
  304. class CIM_ComputerSystem : CIM_System
  305. {
  306. [ Override ("NameFormat"),
  307. Description ( "The CIM_ComputerSystem object and its derivatives are Top "
  308. "Level Objects of CIM. They provide the scope for numerous "
  309. "components. Having unique CIM_System keys is required. A "
  310. "heuristic is defined to create the CIM_ComputerSystem name "
  311. "to attempt to always generate the same name, independent "
  312. "of discovery protocol. This prevents inventory and management "
  313. "problems where the same asset or entity is discovered multiple "
  314. "times, but can not be resolved to a single object. Use of "
  315. "the heuristic is optional, but recommended. \n\n The "
  316. "NameFormat property identifies how the computer system name "
  317. "is generated, using a heuristic. The heuristic is outlined, "
  318. "in detail, in the CIM V2 Common Model specification. It "
  319. "assumes that the documented rules are traversed in order, "
  320. "to determine and assign a name. The NameFormat values list "
  321. "defines the precedence order for assigning the computer system "
  322. "name. Several rules do map to the same Value. \n\n Note that "
  323. "the CIM_ComputerSystem Name calculated using the heuristic "
  324. "is the system's key value. Other names can be assigned and "
  325. "used for the CIM_ComputerSystem, that better suit the "
  326. "business, using Aliases." ) : Amended,
  327. ValueMap { "Other", "IP", "Dial", "HID", "NWA", "HWA", "X25",
  328. "ISDN", "IPX", "DCC", "ICD", "E.164", "SNA", "OID/OSI"}
  329. ]
  330. string NameFormat;
  331. };
  332. // =============================================================================
  333. // CIM_Service
  334. // =============================================================================
  335. [ Abstract,
  336. Description ( "A logical element that contains the information necessary to "
  337. "represent and manage the functionality provided by a device "
  338. "and/or software feature. A service is a general-purpose object "
  339. "to configure and manage the implementation of functionality. It "
  340. "is not the functionality itself." ) : Amended, LOCALE(0x409)
  341. ]
  342. class CIM_Service : CIM_LogicalElement
  343. {
  344. [ CIM_Key,
  345. MaxLen (256),
  346. Description ( "CreationClassName indicates the name of the class or the "
  347. "subclass used in the creation of an instance. When used "
  348. "with the other key properties of this class, this property "
  349. "allows all instances of this class and its subclasses to be "
  350. "uniquely identified.") : Amended
  351. ]
  352. string CreationClassName;
  353. [ Override ("Name"),
  354. Key,
  355. MaxLen (256),
  356. Description ( "The Name property uniquely identifies the service and "
  357. "provides an indication of the functionality that is managed. "
  358. "This functionality is described in more detail in the "
  359. "object's Description property.") : Amended
  360. ]
  361. string Name;
  362. [ MaxLen (10),
  363. Description ( "StartMode is a string value indicating whether the service "
  364. "is automatically started by a operating system, or only "
  365. "started upon request." ) : Amended,
  366. ValueMap {"Automatic", "Manual"} : Amended
  367. ]
  368. string StartMode;
  369. [ Description ( "Started is a boolean indicating whether the service has "
  370. "been started (TRUE), or stopped (FALSE)." ) : Amended
  371. ]
  372. boolean Started;
  373. [ Propagated ("CIM_System.CreationClassName"),
  374. CIM_Key,
  375. MaxLen (256),
  376. Description ( "The scoping System's CreationClassName. ") : Amended
  377. ]
  378. string SystemCreationClassName;
  379. [ Propagated ("CIM_System.Name"),
  380. Key,
  381. MaxLen (256),
  382. Description ("The name of the system that hosts this service") : Amended
  383. ]
  384. string SystemName;
  385. [ Description ( "The StartService method places the service in the started "
  386. "state. It returns an integer value of 0 if the service was "
  387. "successfully started, 1 if the request is not supported and "
  388. "any other number to indicate an error." ) : Amended
  389. ]
  390. uint32 StartService();
  391. [ Description ( "The StopService method places the service in the stopped "
  392. "state. It returns an integer value of 0 if the service was "
  393. "successfully stopped, 1 if the request is not supported and "
  394. "any other number to indicate an error.") : Amended
  395. ]
  396. uint32 StopService();
  397. };
  398. // =============================================================================
  399. // CIM_Dependency
  400. // =============================================================================
  401. [ Association,
  402. Abstract,
  403. Description ( "A generic association to establish dependency relationships "
  404. "between objects") : Amended, LOCALE(0x409)
  405. ]
  406. class CIM_Dependency
  407. {
  408. [ Description ( "Antecedent represents the independent object in this "
  409. "association.") : Amended
  410. ]
  411. CIM_ManagedSystemElement REF Antecedent;
  412. [ Description ( "Dependent represents the object dependent on the Antecedent.")
  413. : Amended
  414. ]
  415. CIM_ManagedSystemElement REF Dependent;
  416. };
  417. // =============================================================================
  418. // CIM_HostedService
  419. // =============================================================================
  420. [ Association,
  421. Description ( "CIM_HostedService is an association between a service and the "
  422. "system on which the functionality resides. The cardinality of "
  423. "this association is 1-to-many. A system may host many "
  424. "services. services are weak with respect to their hosting "
  425. "system. Heuristic: A service is hosted on the system where "
  426. "the logical devices or software features that implement the "
  427. "service are located. The model does not represent services "
  428. "hosted across multiple systems. This is modeled as an "
  429. "application system that acts as an aggregation point for "
  430. "services, that are each located on a single host." )
  431. : Amended, LOCALE(0x409)
  432. ]
  433. class CIM_HostedService:CIM_Dependency
  434. {
  435. [ Override ("Antecedent"),
  436. Max (1),
  437. Min (1),
  438. Description ( "The hosting system" ) : Amended
  439. ]
  440. CIM_System REF Antecedent;
  441. [ Override ("Dependent"),
  442. Weak,
  443. Description ("The service hosted on the system") : Amended
  444. ]
  445. CIM_Service REF Dependent;
  446. };
  447. // =============================================================================
  448. // CIM_ServiceServiceDependency
  449. // =============================================================================
  450. [ Association,
  451. Description ( "CIM_ServiceServiceDependency is an association between a "
  452. "service and another service, indicating that the latter is "
  453. "required to be present, required to have completed, or must "
  454. "be absent for the former service to provide its functionality. "
  455. "For example, boot services may be dependent upon underlying "
  456. "BIOS Disk and initialization services. In the case of the "
  457. "initialization services, the boot service is simply dependent "
  458. "on the init services completing. For the disk services, boot "
  459. "services may actually utilize the SAPs of this service. "
  460. "This usage dependency is modeled via the "
  461. "CIM_ServiceSAPDependency association." )
  462. : Amended, LOCALE(0x409)
  463. ]
  464. class CIM_ServiceServiceDependency:CIM_Dependency
  465. {
  466. [ Override ("Antecedent"),
  467. Description ("The required service.") : Amended
  468. ]
  469. CIM_Service REF Antecedent;
  470. [ Override ("Dependent"),
  471. Description ( "The service that is dependent on an underlying service.") : Amended
  472. ]
  473. CIM_Service REF Dependent;
  474. [ Description ( "The nature of the service to service dependency. This "
  475. "property describes that the associated service must have "
  476. "completed (value=2), must be started (3) or must not be "
  477. "started (4) in order for the service to function.")
  478. : Amended ToSubclass,
  479. Values { "Unknown", "Other", "Service Must Have Completed",
  480. "Service Must Be Started", "Service Must Not Be Started" } : Amended
  481. ]
  482. uint16 TypeOfDependency;
  483. };
  484. // =============================================================================
  485. // CIM_Component
  486. // =============================================================================
  487. [ Association,
  488. Abstract,
  489. Aggregation: ToSubClass,
  490. Description ( "A generic association to establish 'part of' relationships "
  491. "between managed system elements." ) : Amended, LOCALE(0x409)
  492. ]
  493. class CIM_Component
  494. {
  495. [ Aggregate: ToSubClass,
  496. Description ( "The parent element in the association.") : Amended
  497. ]
  498. CIM_ManagedSystemElement REF GroupComponent;
  499. [ Description ("The child element in the association.") : Amended
  500. ]
  501. CIM_ManagedSystemElement REF PartComponent;
  502. };
  503. // =============================================================================
  504. // CIM_UnitaryComputerSystem
  505. // =============================================================================
  506. [ Abstract,
  507. Description ( "A class derived from CIM_ComputerSystem that represents a "
  508. "desktop, mobile, network PC, server or other type of a "
  509. "single node computer system." ) : Amended, LOCALE(0x409)
  510. ]
  511. class CIM_UnitaryComputerSystem : CIM_ComputerSystem
  512. {
  513. [ Description ( "This object contains the data needed to find either the "
  514. "initial load device (its key) or the boot service to "
  515. "request the operating system to start up." ) : Amended
  516. ]
  517. string InitialLoadInfo[];
  518. [ Description ( "The array entry of the InitialLoadInfo property, that "
  519. "holds the data corresponding to booting the currently "
  520. "loaded operating system." ) : Amended,
  521. MappingStrings { "MIB.IETF|HOST-RESOURCES-MIB.hrSystemInitialLoadDevice",
  522. "MIB.IETF|HOST-RESOURCES-MIB.hrSystemInitialLoadParameters" }
  523. ]
  524. string LastLoadInfo;
  525. [ Description ( "If enabled (value = 4), the unitary computer system can "
  526. "be reset via hardware (e.g. the power and reset buttons). "
  527. "If disabled (value = 3), hardware reset is not allowed. In "
  528. "addition to Enabled and Disabled, other values for the "
  529. "property are also defined - \"Not Implemented\" (5), "
  530. "\"Other\" (1) and \"Unknown\" (2)." ) : Amended,
  531. ValueMap { "1", "2", "3", "4", "5" },
  532. Values { "Other", "Unknown", "Disabled", "Enabled", "Not Implemented" }
  533. : Amended ToSubclass,
  534. MappingStrings { "MIF.DMTF|System Hardware Security|001.4" }
  535. ]
  536. uint16 ResetCapability;
  537. [ Description ( "Boolean indicating that the computer system, with "
  538. "its running operating system, support power management. "
  539. "This boolean does not indicate that power management "
  540. "features are currently enabled, only that the system is "
  541. "capable of power management." ) : Amended
  542. ]
  543. boolean PowerManagementSupported;
  544. [ Description( "Indicates the specific power-related capabilities of a "
  545. "computer system and its associated running operating "
  546. "system. The values, 0=\"Unknown\", 1=\"Not Supported\", "
  547. "and 2=\"Disabled\" are self-explanatory. The value, "
  548. "3=\"Enabled\" indicates that the power management "
  549. "features are currently enabled but the exact feature "
  550. "set is unknown or the information is unavailable. "
  551. "\"Power Saving Modes Entered Automatically\" (4) "
  552. "describes that a system can change its power state "
  553. "based on usage or other criteria. \"Power State "
  554. "Settable\" (5) indicates that the SetPowerState method "
  555. "is supported. \"Power Cycling Supported\" (6) indicates "
  556. "that the SetPowerState method can be invoked with the "
  557. "PowerState parameter set to 5 (\"Power Cycle\"). "
  558. "\"Timed Power On Supported\" (7) indicates that the "
  559. "SetPowerState method can be invoked with the "
  560. "PowerState parameter set to 5 (\"Power Cycle\") and "
  561. "the Time parameter set to a specific date and time, "
  562. "or interval, for power-on." ) : Amended,
  563. Values { "Unknown", "Not Supported", "Disabled", "Enabled",
  564. "Power Saving Modes Entered Automatically",
  565. "Power State Settable", "Power Cycling Supported",
  566. "Timed Power On Supported" } : Amended,
  567. MappingStrings {"MIF.DMTF|System Power Controls|001.2"}
  568. ]
  569. uint16 PowerManagementCapabilities[];
  570. [ Description( "Indicates the current power state of the computer "
  571. "system and its associated operating system. Regarding "
  572. "the power saving states, these are defined as follows: "
  573. "Value 4 (Unknown) indicates that the system is known "
  574. "to be in a power save mode, but its exact status in "
  575. "this mode is unknown; 2 (Low Power Mode) indicates "
  576. "that the system is in a power save state but still "
  577. "functioning, and may exhibit degraded performance; "
  578. "3 (Standby) describes that the system is not functioning "
  579. "but could be brought to full power 'quickly'; and value "
  580. "7 (Warning) indicates that the computerSystem is in a "
  581. "warning state, though also in a power save mode." ) : Amended,
  582. Values { "Unknown", "Full Power", "Power Save - Low Power Mode",
  583. "Power Save - Standby", "Power Save - Unknown", "Power Cycle",
  584. "Power Off", "Power Save - Warning" } : Amended
  585. ]
  586. uint16 PowerState;
  587. [ Description( "SetPowerState method defines the desired power state of "
  588. "a computer system and its running operating system, and "
  589. "when the system should be put into that state. The "
  590. "PowerState parameter is specified as one of the valid "
  591. "integer values defined for the property, PowerState. "
  592. "The Time parameter (for all state changes but 5, "
  593. "\"Power Cycle\") indicates when the power state should "
  594. "be set, either as a regular date-time value or as an "
  595. "interval value (where the interval begins when the "
  596. "method invocation is received). When the PowerState "
  597. "parameter is equal to 5, \"Power Cycle\", the Time "
  598. "parameter indicates when the system should power on "
  599. "again. power off is immediate. SetPowerState should "
  600. "return 0 if successful, 1 if the specified power state "
  601. "and time requests are not supported, and some other "
  602. "value if any other error occurred." ) : Amended
  603. ]
  604. uint32 SetPowerState([IN] uint16 PowerState, [IN] datetime Time);
  605. };
  606. // =============================================================================
  607. // CIM_Cluster
  608. // =============================================================================
  609. [ Abstract,
  610. Description ( "A class derived from CIM_ComputerSystem that 'is made up of' two "
  611. "or more computer systems which operate together as an atomic, "
  612. "functional whole to increase the performance, resources and/or "
  613. "RAS (Reliability, Availability and Serviceability) of the "
  614. "component computer systems, related to some aspects of these "
  615. "computer systems." ) : Amended, LOCALE(0x409)
  616. ]
  617. class CIM_Cluster : CIM_ComputerSystem
  618. {
  619. [ Description ( "Interconnect is a free form string that describes the "
  620. "interconnection mechanism for the cluster." ) : Amended
  621. ]
  622. string Interconnect;
  623. [ Description ( "InterconnectAddress indicates the address of the cluster "
  624. "system, which is dependent on the interconnection scheme. "
  625. "If no address is available or applicable, a null string "
  626. "should be used." ) : Amended
  627. ]
  628. string InterconnectAddress;
  629. [ Description ( "This displays the cluster types. This specifies whether "
  630. "the cluster is for failover (value=2), performance (3), "
  631. "etc. The values which can be specified are not mutually "
  632. "exclusive. Thus, Types isan array." ) : Amended,
  633. Values { "Unknown", "Other", "Failover", "Performance",
  634. "Distributed OS", "Node Grouping" } : Amended
  635. ]
  636. uint16 Types[];
  637. [Description ( "Indicates the maximum number of nodes that may participate in "
  638. "the cluster. If unlimited, enter 0." ) : Amended
  639. ]
  640. uint32 MaxNumberOfNodes;
  641. [ Description ( "Indicates the state of the cluster. The cluster can be "
  642. "defined to be on-line (value=2), off-line (3), in a degraded "
  643. "mode of operation (4) or unavailable (5)." ) : Amended,
  644. Values { "Unknown", "Other", "On-line", "Off-line",
  645. "Degraded", "Unavailable" } : Amended
  646. ]
  647. uint16 ClusterState;
  648. };
  649. // =============================================================================
  650. // CIM_ParticipatingCS
  651. // =============================================================================
  652. [ Association,
  653. Abstract,
  654. Description ( "A CIM_Cluster is composed of two or more computer system's, "
  655. "operating together. A computer system may participate in "
  656. "multiple clusters. \n\n"
  657. "When first establishing or bringing up a cluster, only one "
  658. "computer system may be defined as participating in it. "
  659. "Therefore, the cardinality of the association for "
  660. "the CIM_ComputerSystem reference is Min(1). " )
  661. : Amended, LOCALE(0x409)
  662. ]
  663. class CIM_ParticipatingCS : CIM_Dependency
  664. {
  665. [ Override ("Antecedent"),
  666. Description ( "The ComputerSystem which participates in the Cluster. ") : Amended,
  667. Min (1)
  668. ]
  669. CIM_ComputerSystem REF Antecedent;
  670. [ Override ("Dependent"),
  671. Description ("The cluster") : Amended
  672. ]
  673. CIM_Cluster REF Dependent;
  674. [ Description ( "StateOfNode indicates the condition of the participating "
  675. "computer system in the cluster. For example, one value is "
  676. "\"Joining\" (2)." ) : Amended,
  677. Values { "Unknown", "Other", "Joining", "Paused", "Available",
  678. "Unavailable", "Degraded" } : Amended
  679. ]
  680. uint16 StateOfNode;
  681. [ Description ( "RoleOfNode indicates whether the cluster nodes are "
  682. "peers (value = 3), connected in a master-slave/primary-"
  683. "secondary relationship (values = 4 for primary, 5 for "
  684. "secondary), available in a standby configuration (6) or "
  685. "of some other (1) or unknown (2) relationship." ) : Amended,
  686. Values { "Unknown", "Other", "Peer", "Primary", "Secondary", "Standby" } : Amended
  687. ]
  688. uint16 RoleOfNode;
  689. };
  690. // =============================================================================
  691. // CIM_ClusteringService
  692. // =============================================================================
  693. [ Abstract,
  694. Description ( "CIM_ClusteringService represents the functionality provided by a "
  695. "cluster. For example, failover functionality may be modeled as "
  696. "a service of a failover cluster." ) : Amended, LOCALE(0x409)
  697. ]
  698. class CIM_ClusteringService : CIM_Service
  699. {
  700. [ Description ( "AddNode brings a new computer system into a cluster. "
  701. "The node to be added is specified as a parameter to the "
  702. "method. The return value should be 0 if the computer "
  703. "system is successfully added, 1 if the method is not "
  704. "supported and any other number if an error occurred." )
  705. : Amended
  706. ]
  707. uint32 AddNode ( [IN] CIM_ComputerSystem ref CS );
  708. [ Description ( "EvictNode removes a computer system from a cluster. "
  709. "The node to be evicted is specified as a parameter to the "
  710. "method. The return value should be 0 if the computer system "
  711. "is successfully evicted, 1 if the method is not supported "
  712. "and any other number if an error occurred." ) : Amended
  713. ]
  714. uint32 EvictNode ( [IN] CIM_ComputerSystem ref CS );
  715. };
  716. // =============================================================================
  717. // CIM_HostedClusterService
  718. // =============================================================================
  719. [ Association,
  720. Description ( "CIM_HostedClusterService defines the hosting cluster for a "
  721. "clustering service. Since this relationship is subclassed "
  722. "from CIM_HostedService, it inherits the scoping/naming scheme "
  723. "defined for CIM_Service - where a service is weak to its "
  724. "hosting system. In this case, a clustering service must be "
  725. "weak to its hosting cluster system." ) : Amended, LOCALE(0x409)
  726. ]
  727. class CIM_HostedClusterService : CIM_HostedService
  728. {
  729. [ Override ("Antecedent"),
  730. Description ("The cluster") : Amended
  731. ]
  732. CIM_Cluster REF Antecedent;
  733. [ Override ("Dependent"),
  734. Description ( "The CIM_ClusteringService that is hosted on the cluster." ) : Amended
  735. ]
  736. CIM_ClusteringService REF Dependent;
  737. };
  738. // *****************************************************************************
  739. // MicrosoftNLB_Cluster
  740. // *****************************************************************************
  741. [
  742. Dynamic,
  743. Provider("Microsoft|NLB_Provider|V1.0"),
  744. Description( "This represents an instance of the NLB cluster. Only nodes that "
  745. "have remote control enabled contribute to the ClusterState as "
  746. "reported in this class and respond to the methods invoked from "
  747. "this class.") : Amended,
  748. LOCALE(0x409)
  749. ]
  750. class MicrosoftNLB_Cluster : CIM_Cluster
  751. {
  752. [ Read,
  753. Override ("Name"),
  754. MaxLen (256),
  755. Description ( "The cluster IP address is used in this property to uniquely "
  756. "identify the cluster.") : Amended
  757. ]
  758. string Name;
  759. [ Override("InterconnectAddress"),
  760. Read,
  761. Description ( "InterconnectAddress displays the IP address of the cluster." )
  762. : Amended
  763. ]
  764. string InterconnectAddress;
  765. [ Override ("ClusterState"),
  766. Read,
  767. Description ( "Indicates the current state of the entire cluster. Only "
  768. "nodes that have remote control enabled report their status. "
  769. "The value represents the summary of the state from all "
  770. "cluster nodes. In addition to the values indicated in the "
  771. "Values qualifier, this property may take on a value from 1 to 32 "
  772. "that signifies the number of converged remote-control-enabled "
  773. "nodes within the cluster." ) : Amended,
  774. Values { "WLBS_SUSPENDED", "WLBS_STOPPED", "WLBS_DRAINING", "WLBS_CONVERGING"}
  775. : ToInstance,
  776. ValueMap { "1013", "1005", "1009", "1006"}
  777. : ToInstance
  778. ]
  779. uint16 ClusterState;
  780. //Methods
  781. [
  782. Implemented,
  783. Description( "Disable all traffic handling on all remoted-control-enabled "
  784. "nodes, for the rule containing the specified port. Port "
  785. "may take any value from 0 to 65,535 or 0xFFFFFFFF to specify "
  786. "all ports. NumNodes returns the number of nodes that "
  787. "have responded to the request.") : Amended,
  788. Values { "WLBS_OK", "WLBS_NOT_FOUND", "WLBS_SUSPENDED" } : ToInstance,
  789. ValueMap { "1000", "1004", "1013" } : ToInstance
  790. ]
  791. uint32 Disable( [IN] uint32 Port, [OUT] uint32 NumNodes );
  792. [
  793. Implemented,
  794. Description("Enable traffic handling on all remoted-control-enabled nodes, "
  795. "for the rule containing the specified port on specified nodes. "
  796. "Port may take any value from 0 to 65,535 or 0xFFFFFFFF to "
  797. "specify all ports. NumNodes returns the number of nodes that "
  798. "have responded to the request.")
  799. : Amended,
  800. Values { "WLBS_OK", "WLBS_NOT_FOUND", "WLBS_SUSPENDED" } : ToInstance,
  801. ValueMap { "1000", "1004", "1013" } : ToInstance
  802. ]
  803. uint32 Enable( [IN] uint32 Port, [OUT] uint32 NumNodes );
  804. [
  805. Implemented,
  806. Description("Disable new traffic handling on all remoted-control-enabled "
  807. "nodes, for the rule containing the specified port on "
  808. "specified nodes. Port may take any value from 0 to 65,535 "
  809. "or 0xFFFFFFFF to specify all ports. NumNodes returns the "
  810. "number of nodes that have responded to the request.") : Amended,
  811. Values { "WLBS_OK", "WLBS_NOT_FOUND", "WLBS_SUSPENDED" } : ToInstance,
  812. ValueMap { "1000", "1004", "1013" } : ToInstance
  813. ]
  814. uint32 Drain( [IN] uint32 Port, [OUT] uint32 NumNodes );
  815. [
  816. Implemented,
  817. Description("Enter draining mode on all remoted-control-enabled nodes. "
  818. "WlbsDrainStop affects all ports. NumNodes returns the "
  819. "number of nodes that have responded to the request.") : Amended,
  820. Values { "WLBS_OK", "WLBS_STOPPED", "WLBS_SUSPENDED" } : ToInstance,
  821. ValueMap { "1000", "1005", "1013" } : ToInstance
  822. ]
  823. uint32 DrainStop( [OUT] uint32 NumNodes );
  824. [
  825. Implemented,
  826. Description("Resume cluster operation control on all remoted-control-enabled "
  827. "nodes. NumNodes returns the number of nodes respond to the "
  828. "request.") : Amended,
  829. Values { "WLBS_OK" } : ToInstance,
  830. ValueMap { "1000" } : ToInstance
  831. ]
  832. uint32 Resume( [OUT] uint32 NumNodes );
  833. [
  834. Implemented,
  835. Description("Start cluster operations on all remoted-control-enabled "
  836. "nodes. NumNodes returns the number of nodes that respond "
  837. "to the request.") : Amended,
  838. Values { "WLBS_OK", "WLBS_SUSPENDED", "WLBS_BAD_PARAMS" } : ToInstance,
  839. ValueMap { "1000", "1013", "1003" } : ToInstance
  840. ]
  841. uint32 Start( [OUT] uint32 NumNodes );
  842. [
  843. Implemented,
  844. Description("Stop cluster operations on all remoted-control-enabled nodes.") : Amended,
  845. Values { "WLBS_OK", "WLBS_SUSPENDED" } : ToInstance,
  846. ValueMap { "1000", "1013" } : ToInstance
  847. ]
  848. uint32 Stop( [OUT] uint32 NumNodes );
  849. [
  850. Implemented,
  851. Description("Suspend cluster operation control on all remoted-control-enabled nodes.") : Amended,
  852. Values { "WLBS_OK" } : ToInstance,
  853. ValueMap { "1000" } : ToInstance
  854. ]
  855. uint32 Suspend( [OUT] uint32 NumNodes );
  856. };
  857. // *****************************************************************************
  858. // MicrosoftNLB_Node
  859. // *****************************************************************************
  860. [
  861. Dynamic,
  862. Provider("Microsoft|NLB_Provider|V1.0"),
  863. Description( "This represents an instance of a node within a cluster." ) : Amended,
  864. LOCALE(0x409)
  865. ]
  866. class MicrosoftNLB_Node : CIM_UnitaryComputerSystem
  867. {
  868. [ Read,
  869. Override ("Name"),
  870. Description ( "The ID of the host participating in the cluster. The ID is in "
  871. "format ClusterIP:HostPriority, i.e. 172.150.35.12:1") : Amended
  872. ]
  873. string Name;
  874. [ Read,
  875. Description("This property specifies a host's unique priority for handling "
  876. "default network traffic for TCP and UDP ports that are not "
  877. "otherwise handled by port rules. It is used in case a host "
  878. "within the cluster goes offline, and determines which host "
  879. "within the cluster will take over handling this traffic if "
  880. "required. The allowed values for host priority range from 1 "
  881. "to the maximum number of hosts. Lower values indicate higher "
  882. "priorities (where 1 is the highest priority). Each host "
  883. "within the cluster must specify a unique host priority.") : Amended
  884. ]
  885. uint32 HostPriority;
  886. [ Read,
  887. Description("This property specifies this host's unique IP address used "
  888. "for network traffic not associated with the cluster (for "
  889. "example, Telnet access to a specific host within the cluster).")
  890. : Amended
  891. ]
  892. string DedicatedIPAddress;
  893. [ Read,
  894. Description("The current status of the host.") : Amended,
  895. Values {
  896. "WLBS_SUSPENDED",
  897. "WLBS_STOPPED",
  898. "WLBS_DRAINING",
  899. "WLBS_CONVERGING",
  900. "WLBS_CONVERGED",
  901. "WLBS_DEFAULT"
  902. } : ToInstance,
  903. ValueMap {
  904. "1013",
  905. "1005",
  906. "1009",
  907. "1006",
  908. "1007",
  909. "1008"
  910. } : ToInstance
  911. ]
  912. uint32 StatusCode;
  913. //Methods
  914. [
  915. Implemented,
  916. Description( "Disable all traffic handling for the rule containing the "
  917. "specified port. Port may take any value from 0 to 65,535 or"
  918. "0xFFFFFFFF to specify all ports.") : Amended,
  919. Values {
  920. "WLBS_OK",
  921. "WLBS_NOT_FOUND",
  922. "WLBS_SUSPENDED",
  923. "WLBS_ALREADY",
  924. "WLBS_STOPPED",
  925. "WLBS_DRAINING"
  926. } : ToInstance,
  927. ValueMap {
  928. "1000",
  929. "1004",
  930. "1013",
  931. "1001",
  932. "1005",
  933. "1009"
  934. } : ToInstance
  935. ]
  936. uint32 Disable( [IN] uint32 Port );
  937. [
  938. Implemented,
  939. Description("Enable traffic handling for the rule containing "
  940. "the specified port. Port may take any value from "
  941. "0 to 65,535 or 0xFFFFFFFF to specify all ports.") : Amended,
  942. Values {
  943. "WLBS_OK",
  944. "WLBS_NOT_FOUND",
  945. "WLBS_SUSPENDED",
  946. "WLBS_ALREADY",
  947. "WLBS_STOPPED",
  948. "WLBS_DRAINING"
  949. } : ToInstance,
  950. ValueMap {
  951. "1000",
  952. "1004",
  953. "1013",
  954. "1001",
  955. "1005",
  956. "1009"
  957. } : ToInstance
  958. ]
  959. uint32 Enable( [IN] uint32 Port );
  960. [
  961. Implemented,
  962. Description("Disable new traffic handling for rule containing the specified port."
  963. "Port may take any value from 0 to 65,535 or "
  964. "0xFFFFFFFF to specify all ports.") : Amended,
  965. Values {
  966. "WLBS_OK",
  967. "WLBS_NOT_FOUND",
  968. "WLBS_SUSPENDED",
  969. "WLBS_ALREADY",
  970. "WLBS_STOPPED",
  971. "WLBS_DRAINING"
  972. } : ToInstance,
  973. ValueMap {
  974. "1000",
  975. "1004",
  976. "1013",
  977. "1001",
  978. "1005",
  979. "1009"
  980. } : ToInstance
  981. ]
  982. uint32 Drain( [IN] uint32 Port );
  983. [
  984. Implemented,
  985. Description("Enter draining mode on specified nodes. WlbsDrainStop affects all ports.")
  986. : Amended,
  987. Values {
  988. "WLBS_OK",
  989. "WLBS_SUSPENDED",
  990. "WLBS_ALREADY",
  991. "WLBS_STOPPED"
  992. } : ToInstance,
  993. ValueMap {
  994. "1000",
  995. "1013",
  996. "1001",
  997. "1005"
  998. } : ToInstance
  999. ]
  1000. uint32 DrainStop();
  1001. [
  1002. Implemented,
  1003. Description("Resume cluster operation control.") : Amended,
  1004. Values { "WLBS_OK", "WLBS_ALREADY" } : ToInstance,
  1005. ValueMap { "1000", "1001" } : ToInstance
  1006. ]
  1007. uint32 Resume();
  1008. [
  1009. Implemented,
  1010. Description("Start cluster operations.") : Amended,
  1011. Values {
  1012. "WLBS_OK",
  1013. "WLBS_SUSPENDED",
  1014. "WLBS_ALREADY",
  1015. "WLBS_DRAIN_STOP",
  1016. "WLBS_BAD_PARAMS"
  1017. } : ToInstance,
  1018. ValueMap {
  1019. "1000",
  1020. "1013",
  1021. "1001",
  1022. "1002",
  1023. "1003"
  1024. } : ToInstance
  1025. ]
  1026. uint32 Start();
  1027. [
  1028. Implemented,
  1029. Description("Stop cluster operations.") : Amended,
  1030. Values {
  1031. "WLBS_OK",
  1032. "WLBS_SUSPENDED",
  1033. "WLBS_ALREADY",
  1034. "WLBS_DRAIN_STOP"
  1035. } : ToInstance,
  1036. ValueMap {
  1037. "1000",
  1038. "1013",
  1039. "1001",
  1040. "1002"
  1041. } : ToInstance
  1042. ]
  1043. uint32 Stop();
  1044. [
  1045. Implemented,
  1046. Description("Suspend cluster operation control.") : Amended,
  1047. Values {
  1048. "WLBS_OK",
  1049. "WLBS_STOPPED",
  1050. "WLBS_ALREADY",
  1051. "WLBS_DRAIN_STOP"
  1052. } : ToInstance,
  1053. ValueMap {
  1054. "1000",
  1055. "1005",
  1056. "1001",
  1057. "1002"
  1058. } : ToInstance
  1059. ]
  1060. uint32 Suspend();
  1061. };
  1062. // *****************************************************************************
  1063. // MicrosoftNLB_ClusterSetting
  1064. // *****************************************************************************
  1065. [
  1066. Dynamic,
  1067. Provider("Microsoft|NLB_Provider|V1.0"),
  1068. Description("This holds and modifies cluster specific configuration information."
  1069. "The provider will only return the instance for "
  1070. "this class that corresponds to the node upon which it resides."
  1071. "Consequently, to configure a node, the client must explicitly "
  1072. "connect to that node. Modified values do not take affect until "
  1073. "LoadAllSettings is invoked from this class or the "
  1074. "MicrosoftNLB_NodeSetting class.") : Amended,
  1075. LOCALE(0x409)
  1076. ]
  1077. class MicrosoftNLB_ClusterSetting : CIM_Setting
  1078. {
  1079. //Properties
  1080. [
  1081. Key,
  1082. Read,
  1083. Description("The name of the host to which this setting applies"): ToInstance
  1084. Amended
  1085. ]
  1086. string Name;
  1087. [
  1088. Description("This property specifies a full Internet name for the Network "
  1089. "Load Balancing cluster (for example, cluster.domain.com). This "
  1090. "name is used for the cluster as a whole, and should be the "
  1091. "same for all hosts in the cluster. ") : Amended
  1092. ]
  1093. string ClusterName;
  1094. [
  1095. ModelCorrespondence {"CIM_Cluster.InterconnectAddress"},
  1096. Description("This property specifies the cluster's primary IP address "
  1097. "in standard Internet dotted notation (for example, w.x.y.z).") : Amended
  1098. ]
  1099. string ClusterIPAddress;
  1100. [
  1101. Description("This property denotes the subnet mask.") : Amended
  1102. ]
  1103. string ClusterNetworkMask;
  1104. [
  1105. Read,
  1106. Description("This property denotes the cluster MAC address.") : Amended
  1107. ]
  1108. string ClusterMACAddress;
  1109. [
  1110. Description("This property specifies whether or not a multicast MAC "
  1111. "address should be used for cluster operations. If this "
  1112. "option is enabled, Network Load Balancing converts the "
  1113. "cluster MAC address belonging to the cluster adapter into "
  1114. "a multicast address. It also ensures that the cluster's "
  1115. "primary IP address resolves to this multicast address as "
  1116. "part of the ARP protocol. At the same time, the adapter "
  1117. "can now use its original, built-in MAC address, which, "
  1118. "in unicast mode, was disabled. ") : Amended
  1119. ]
  1120. Boolean MulticastSupportEnabled;
  1121. [
  1122. Description("This property specifies whether remote-control operations "
  1123. "are enabled. When disabled, the Service methods will not function"
  1124. "for remote HostIDs. Remote control is disabled by default.") : Amended
  1125. ]
  1126. Boolean RemoteControlEnabled;
  1127. [
  1128. Description("If set to TRUE, send IGMP join periodically.") : Amended
  1129. ]
  1130. Boolean IgmpSupport;
  1131. [
  1132. Description("If set to TRUE, generate IGMP multicast IP from cluster IP.") : Amended
  1133. ]
  1134. Boolean ClusterIPToMulticastIP;
  1135. [
  1136. Description("The cluster's multicast IP address for IGMP.") : Amended
  1137. ]
  1138. string MulticastIPAddress;
  1139. [ Read,
  1140. Description("This is the GUID of the adapter NLB is bound to.") : Amended
  1141. ]
  1142. string AdapterGuid;
  1143. [
  1144. Description("This property specifies if the cluster that this "
  1145. "network adapter is a part of, is operating in the"
  1146. "Bi-Directional Affinity mode.") : Amended
  1147. ]
  1148. Boolean BDATeamActive;
  1149. [
  1150. Description("This property specifies the Bi-Directional Affinity "
  1151. "team identifier of the cluster that this network "
  1152. "adapter is a part of. The value of this property "
  1153. "must be a GUID") : Amended
  1154. ]
  1155. string BDATeamId;
  1156. [
  1157. Description("This property specifies if the cluster that this "
  1158. "network adapter is a part of, is the Master cluster.") : Amended
  1159. ]
  1160. Boolean BDATeamMaster;
  1161. [
  1162. Description("This property specifies whether to reverse hash "
  1163. "on the cluster that this network adapter is a part of.") : Amended
  1164. ]
  1165. Boolean BDAReverseHash;
  1166. //Methods
  1167. [
  1168. Implemented,
  1169. Description("Sets the remote control password.") : Amended
  1170. ]
  1171. void SetPassword( [IN] string Password );
  1172. //Methods
  1173. [
  1174. Implemented,
  1175. Description("This method causes the NLB driver to load with all the values "
  1176. "that are set in ALL of the the setting classes, including the "
  1177. "MicrosoftNLB_NodeSetting and the port rule classes. If the system "
  1178. "is Windows NT4, then the method will return a reboot value.") : Amended,
  1179. Values { "WLBS_OK", "WLBS_REBOOT" } : ToInstance,
  1180. ValueMap { "1000", "1050" } : ToInstance
  1181. ]
  1182. uint32 LoadAllSettings();
  1183. [
  1184. Implemented,
  1185. Description("This method resets all of the properties for this class to "
  1186. "their default values. The values are not commited to the NLB "
  1187. "driver.") : Amended
  1188. ]
  1189. void SetDefaults();
  1190. };
  1191. // *****************************************************************************
  1192. // MicrosoftNLB_NodeSetting
  1193. // *****************************************************************************
  1194. [ Dynamic,
  1195. Provider("Microsoft|NLB_Provider|V1.0"),
  1196. Description("This holds and modifies node specific configuration information."
  1197. "The provider will only return the instance for "
  1198. "this class that corresponds to the node upon which it resides."
  1199. "Consequently, to configure a node, the client must explicitly "
  1200. "connect to that node. Modified values do not take affect until "
  1201. "LoadAllSettings is invoked from this class or the "
  1202. "MicrosoftNLB_ClusterSetting class.") : Amended,
  1203. LOCALE(0x409)
  1204. ]
  1205. class MicrosoftNLB_NodeSetting : CIM_Setting
  1206. {
  1207. //Properties
  1208. [ Key,
  1209. Read,
  1210. Description("The name of the host to which this setting applies"): ToInstance
  1211. Amended
  1212. ]
  1213. string Name;
  1214. [ ModelCorrespondence {"MicrosoftNLB_Node.DedicatedIPAddress"},
  1215. Description("This property specifies this host's unique IP address used "
  1216. "for network traffic not associated with the cluster (for "
  1217. "example, Telnet access to a specific host within the cluster).") : Amended
  1218. ]
  1219. string DedicatedIPAddress;
  1220. [ Description("This property denotes the subnet mask.") : Amended
  1221. ]
  1222. string DedicatedNetworkMask;
  1223. [ Read,
  1224. Description("This is the number of defined port rules.") : Amended
  1225. ]
  1226. uint32 NumberOfRules;
  1227. [ ModelCorrespondence {"MicrosoftNLB_Node.HostPriority"},
  1228. Description("This property specifies a host's unique priority for handling "
  1229. "default network traffic for TCP and UDP ports that are not "
  1230. "included in the Port rule configuration. It is used "
  1231. "in case a host within the cluster goes offline, and determines "
  1232. "which host within the cluster will take over handling this "
  1233. "traffic if required. The allowed values for host priority "
  1234. "range from 1 to the maximum number of hosts. Lower values "
  1235. "indicate higher priorities (where 1 is the highest priority)."
  1236. "Each host within the cluster must specify a unique host priority. "
  1237. "NOTE: This has no affect on traffic that is load balanced. "
  1238. "It only applies to traffic that is not handled by a "
  1239. "port rule." ) : Amended
  1240. ]
  1241. uint32 HostPriority;
  1242. [
  1243. Description("The AliveMsgPeriod value holds the message exchange period in "
  1244. "milliseconds.You should pick this number "
  1245. "based on your failover requirements. A longer message "
  1246. "exchange period will reduce the networking overhead needed "
  1247. "to maintain fault tolerance, but it will increase the "
  1248. "failover delay.") : Amended
  1249. ]
  1250. uint32 AliveMessagePeriod;
  1251. [
  1252. Description("The AliveMsgTolerance value specifies how "
  1253. "many exchanged messages from a host can be missed before the "
  1254. "cluster initiates convergence. You should pick this number "
  1255. "based on your failover requirements. Increasing the number of "
  1256. "message exchanges prior to convergence will reduce the number "
  1257. "of unnecessary convergence initiations due to transient "
  1258. "network congestion, but it will also increase the "
  1259. "failover delay. ") : Amended
  1260. ]
  1261. uint32 AliveMessageTolerance;
  1262. [
  1263. Description("If set to TRUE, join cluster on boot.") : Amended
  1264. ]
  1265. Boolean ClusterModeOnStart;
  1266. [
  1267. Description("This property specifies the UDP port that is used to "
  1268. "receive remote control commands. By default, these are "
  1269. "ports 1717 and 2504 at the cluster IP address") : Amended
  1270. ]
  1271. uint32 RemoteControlUDPPort;
  1272. [
  1273. Description("If true, mangle source MAC address to prevent switch "
  1274. "learning. Use a value of false if the cluster is on a hub: "
  1275. "optimizes switch performance by re-enabling learning.") : Amended
  1276. ]
  1277. Boolean MaskSourceMAC;
  1278. [
  1279. Description("The number of connection tracking descriptors per allocation.") : Amended
  1280. ]
  1281. uint32 DescriptorsPerAlloc;
  1282. [
  1283. Description("The maximum number of connection tracking descriptors "
  1284. "per allocation.") : Amended
  1285. ]
  1286. uint32 MaxDescriptorsPerAlloc;
  1287. [
  1288. Description("The number of actions per allocation.") : Amended
  1289. ]
  1290. uint32 NumActions;
  1291. [
  1292. Description("The number of packets per allocation.") : Amended
  1293. ]
  1294. uint32 NumPackets;
  1295. [
  1296. Description("The number of heartbeats per allocation.") : Amended
  1297. ]
  1298. uint32 NumAliveMessages;
  1299. [ Read,
  1300. Description("This is the GUID of the adapter NLB is bound to.") : Amended
  1301. ]
  1302. string AdapterGuid;
  1303. //Methods
  1304. [
  1305. Implemented,
  1306. Description("This method provides an optimized means for obtaining "
  1307. "the port rule which encapsulates the input Port number.") : Amended
  1308. ]
  1309. void GetPortRule([IN] UINT32 Port, [OUT] MicrosoftNLB_PortRule PortRule);
  1310. [
  1311. Implemented,
  1312. Description("This method causes the NLB driver to load with all the values "
  1313. "that are set in ALL of the the setting classes, including the "
  1314. "MicrosoftNLB_ClusterSetting and the port rule classes. If the system "
  1315. "is Windows NT4, then the method will return a reboot value.") : Amended,
  1316. Values { "WLBS_OK", "WLBS_REBOOT" } : ToInstance,
  1317. ValueMap { "1000", "1050" } : ToInstance
  1318. ]
  1319. uint32 LoadAllSettings();
  1320. [
  1321. Implemented,
  1322. Description("This method resets all of the properties for this class to "
  1323. "their default values. The values are not committed to the NLB "
  1324. "driver.") : Amended
  1325. ]
  1326. void SetDefaults();
  1327. };
  1328. // *****************************************************************************
  1329. // MicrosoftNLB_PortRule
  1330. // *****************************************************************************
  1331. [ Abstract,
  1332. Provider("Microsoft|NLB_Provider|V1.0"),
  1333. Description("This class represents a rule for how TCP/IP traffic "
  1334. "is handled. The provider will only return the instances for "
  1335. "this class that correspond to the node upon which it resides."
  1336. "Consequently, to configure a node, the client must explicitly "
  1337. "connect to that node.") : Amended,
  1338. LOCALE(0x409)
  1339. ]
  1340. class MicrosoftNLB_PortRule : CIM_Setting
  1341. {
  1342. [ Key,
  1343. Override("Name"),
  1344. Description("The name of the host to which this port rule applies"): ToInstance
  1345. Amended
  1346. ]
  1347. string Name;
  1348. [ Key,
  1349. Description("The starting port number to which this rule applies.") : Amended
  1350. ]
  1351. uint32 StartPort = 0;
  1352. [ Description("The ending port number to which this rule applies.") : Amended
  1353. ]
  1354. uint32 EndPort = 65535;
  1355. [ Values {"TCP", "UDP", "Both"},
  1356. ValueMap {"1", "2", "3"} ,
  1357. Description("This specifies the protocol for which this rule applies. "
  1358. "The possible values include TCP, UDP or Both ") : Amended
  1359. ]
  1360. uint32 Protocol = 3;
  1361. [ Read,
  1362. Description("This is the GUID of the adapter NLB is bound to.") : Amended
  1363. ]
  1364. string AdapterGuid;
  1365. [
  1366. Static,
  1367. Implemented,
  1368. Description("This method resets the node's port rule configuration "
  1369. "to the default. The new configuration is not committed "
  1370. "to the driver.") : Amended,
  1371. Values { "WLBS_OK" } : ToInstance,
  1372. ValueMap { "1000" } : ToInstance
  1373. ]
  1374. void SetDefaults([IN] MicrosoftNLB_Node ref Node);
  1375. };
  1376. // *****************************************************************************
  1377. // MicrosoftNLB_PortRuleFailover
  1378. // *****************************************************************************
  1379. [
  1380. Dynamic,
  1381. Provider("Microsoft|NLB_Provider|V1.0"),
  1382. LOCALE(0x409)
  1383. ]
  1384. class MicrosoftNLB_PortRuleFailover : MicrosoftNLB_PortRule
  1385. {
  1386. [ Description("This property specifies the local host's priority for "
  1387. "handling the networking traffic for this port "
  1388. "rule. The host with the highest handling priority (lowest "
  1389. "numerical value) for this rule among the current members of "
  1390. "the cluster will handle all of the traffic for this rule. "
  1391. "The allowed values range from 1, the highest priority, to "
  1392. "the maximum number of hosts allowed. This value must be "
  1393. "unique for all hosts in the cluster.") : Amended, LOCALE(0x409)
  1394. ]
  1395. uint32 Priority = 1;
  1396. };
  1397. // *****************************************************************************
  1398. // MicrosoftNLB_PortRuleLoadbalanced
  1399. // *****************************************************************************
  1400. [
  1401. Dynamic,
  1402. Provider("Microsoft|NLB_Provider|V1.0"),
  1403. LOCALE(0x409)
  1404. ]
  1405. class MicrosoftNLB_PortRuleLoadbalanced : MicrosoftNLB_PortRule
  1406. {
  1407. [ Description("This property specifies that the host accepts an equal "
  1408. "portion of the load-balanced traffic in multiple-host "
  1409. "filtering mode for this port rule. If this value is true, "
  1410. "then the value for LoadWeight is ignored.") : Amended
  1411. ]
  1412. Boolean EqualLoad = True;
  1413. [ Description("This property specifies the relative weight of load-balanced "
  1414. "network traffic that this host should handle for the "
  1415. "associated port rule. Allowed values range from 0 "
  1416. "(zero) to 100. To prevent a host from handling any "
  1417. "network traffic, set the load weight to 0 (zero). ") : Amended
  1418. ]
  1419. uint32 LoadWeight = 50;
  1420. [ Values {"None", "Single", "ClassC"} : Amended,
  1421. ValueMap{"0", "1", "2"},
  1422. Description("This option specifies the client affinity. The possible "
  1423. "values are None, Single and Class C. Single and Class C "
  1424. "are used to ensure that all network traffic from a "
  1425. "particular client be directed to the same cluster host.") : Amended
  1426. ]
  1427. uint32 Affinity = 1;
  1428. };
  1429. // *****************************************************************************
  1430. // MicrosoftNLB_PortRuleDisabled
  1431. // *****************************************************************************
  1432. [
  1433. Dynamic,
  1434. Provider("Microsoft|NLB_Provider|V1.0"),
  1435. Description("This class represents a disabled port rule."): Amended,
  1436. LOCALE(0x409)
  1437. ]
  1438. class MicrosoftNLB_PortRuleDisabled : MicrosoftNLB_PortRule
  1439. {
  1440. };
  1441. // *****************************************************************************
  1442. // *****************************************************************************
  1443. // SCHEMA SPECIFIC ASSOCIATIONS
  1444. // *****************************************************************************
  1445. // *****************************************************************************
  1446. // *****************************************************************************
  1447. // MicrosoftNLB_NodeSettingPortRule
  1448. // *****************************************************************************
  1449. [ Association,
  1450. Dynamic: ToInstance, provider("Microsoft|NLB_Provider|V1.0"),
  1451. Description( "This associates rules to a NodeSetting." ) : Amended,
  1452. LOCALE(0x409)
  1453. ]
  1454. class MicrosoftNLB_NodeSettingPortRule : CIM_Component
  1455. {
  1456. [ Key,
  1457. Override("GroupComponent"),
  1458. Description ("The MicrosoftNLB_NodeSetting class.") : Amended,
  1459. Min (1)
  1460. ]
  1461. MicrosoftNLB_NodeSetting REF GroupComponent;
  1462. [ Key,
  1463. Override("PartComponent"),
  1464. Description ( "The MicrosoftNLB_PortRule") : Amended
  1465. ]
  1466. MicrosoftNLB_PortRule REF PartComponent;
  1467. };
  1468. // *****************************************************************************
  1469. // MicrosoftNLB_ClusterClusterSetting
  1470. // *****************************************************************************
  1471. [ Association,
  1472. Dynamic: ToInstance,
  1473. Provider("Microsoft|NLB_Provider|V1.0"),
  1474. Description ( "This associates a MicrosoftNLB_ClusterSetting to a MicrosoftNLB_Cluster." ) : Amended,
  1475. LOCALE(0x409)
  1476. ]
  1477. class MicrosoftNLB_ClusterClusterSetting : CIM_ElementSetting
  1478. {
  1479. [ Key,
  1480. Override("Element"),
  1481. Description ("A cluster") : Amended,
  1482. Min (1)
  1483. ]
  1484. MicrosoftNLB_Cluster REF Element;
  1485. [ Key,
  1486. Override("Setting"),
  1487. Description ( "The cluster-related settings for a node in a cluster.") : Amended
  1488. ]
  1489. MicrosoftNLB_ClusterSetting REF Setting;
  1490. };
  1491. // *****************************************************************************
  1492. // MicrosoftNLB_NodeNodeSetting
  1493. // *****************************************************************************
  1494. [ Association,
  1495. Dynamic: ToInstance,
  1496. Provider("Microsoft|NLB_Provider|V1.0"),
  1497. Description ( "This associates a MicrosoftNLB_NodeSetting to a MicrosoftNLB_Node." ) : Amended,
  1498. LOCALE(0x409)
  1499. ]
  1500. class MicrosoftNLB_NodeNodeSetting : CIM_ElementSetting
  1501. {
  1502. [ Key,
  1503. Override("Element"),
  1504. Description ("A node") : Amended,
  1505. Min (1)
  1506. ]
  1507. MicrosoftNLB_Node REF Element;
  1508. [ Key,
  1509. Override("Setting"),
  1510. Description ( "The settings for a node") : Amended
  1511. ]
  1512. MicrosoftNLB_NodeSetting REF Setting;
  1513. };
  1514. // *****************************************************************************
  1515. // MicrosoftNLB_ParticipatingNode
  1516. // *****************************************************************************
  1517. [ Association,
  1518. Dynamic: ToInstance,
  1519. Provider("Microsoft|NLB_Provider|V1.0"), LOCALE(0x409)
  1520. ]
  1521. class MicrosoftNLB_ParticipatingNode : CIM_ParticipatingCS
  1522. {
  1523. [ Key,
  1524. Override ("Antecedent"),
  1525. Description ( "The computer system which participates in the cluster." ) : Amended,
  1526. Min (1)
  1527. ]
  1528. MicrosoftNLB_Node REF Antecedent;
  1529. [ Key,
  1530. Override ("Dependent"),
  1531. Description ("The Cluster.") : Amended
  1532. ]
  1533. MicrosoftNLB_Cluster REF Dependent;
  1534. };
  1535. // *****************************************************************************
  1536. // MicrosoftNLB_ExtendedStatus
  1537. // *****************************************************************************
  1538. [ Dynamic : ToInstance,
  1539. Description("The provider utilizes this class to report NLB "
  1540. "specific error codes.") : Amended,
  1541. Provider("Microsoft|NLB_Provider|V1.0"), LOCALE(0x409)
  1542. ]
  1543. class MicrosoftNLB_ExtendedStatus : __ExtendedStatus
  1544. {
  1545. [ Override("StatusCode"),
  1546. Description("NLB and Winsock error codes are returned in this property."
  1547. "The Values and ValueMap qualifiers map the NLB defined "
  1548. "constants, but do not include Winsock error codes.")
  1549. : Amended,
  1550. Values {
  1551. "WLBS_BAD_PARAMS" ,
  1552. "WLBS_NOT_FOUND" ,
  1553. "WLBS_BAD_PASSW" ,
  1554. "WLBS_IO_ERROR" ,
  1555. "WLBS_TIMEOUT" ,
  1556. "WLBS_PORT_OVERLAP" ,
  1557. "WLBS_BAD_PORT_PARAMS",
  1558. "WLBS_MAX_PORT_RULES" ,
  1559. "WLBS_REG_ERROR"
  1560. } : ToInstance,
  1561. ValueMap {
  1562. "1003",
  1563. "1004",
  1564. "1101",
  1565. "1102",
  1566. "1103",
  1567. "1150",
  1568. "1151",
  1569. "1152",
  1570. "1154"
  1571. } : ToInstance
  1572. ]
  1573. uint32 StatusCode;
  1574. };