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

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