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.

972 lines
29 KiB

  1. //////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 2000-2001 Microsoft Corporation
  4. //
  5. // Module Name:
  6. // ClusCfgPrivate.idl
  7. //
  8. // Description:
  9. // This file is the IDL file for private interfaces between components
  10. // of the Cluster Configuration Wizard.
  11. //
  12. //
  13. // Maintained By:
  14. // Galen Barbee (GalenB) 29-JUN-2000
  15. //
  16. //////////////////////////////////////////////////////////////////////////////
  17. // Comments for generated files
  18. cpp_quote( "//////////////////////////////////////////////////////////////////////////////" )
  19. cpp_quote( "//" )
  20. cpp_quote( "// Copyright (c) 2000 Microsoft Corporation" )
  21. cpp_quote( "//" )
  22. cpp_quote( "// Remarks:" )
  23. cpp_quote( "// These are private interfaces and should not be published outside of Microsoft!" )
  24. cpp_quote( "//////////////////////////////////////////////////////////////////////////////" )
  25. //////////////////////////////////////////////////////////////////////////////
  26. // Imported Files
  27. //////////////////////////////////////////////////////////////////////////////
  28. import "unknwn.idl";
  29. import "objidl.idl";
  30. import "ClusCfgServer.idl";
  31. import "objectcookie.h";
  32. //////////////////////////////////////////////////////////////////////////////
  33. // Forward Declarations
  34. //////////////////////////////////////////////////////////////////////////////
  35. interface IClusCfgServer;
  36. interface IClusCfgBaseCluster;
  37. //****************************************************************************
  38. //++
  39. //
  40. // interface IClusCfgServer
  41. //
  42. // Description:
  43. // The IClusCfgServer interface provides the functions
  44. // required to gather information about storage devices, networks
  45. // and the operating system on a computer. It also exposes functions
  46. // to form a cluster on this computer, to add this node to a cluster,
  47. // to remove this node from a cluster, etc.
  48. //
  49. //--
  50. //****************************************************************************
  51. [
  52. object,
  53. uuid( 4C06EAE6-990E-4051-8AA1-AD4B4EAE9CAF ),
  54. async_uuid( 2A1640AA-4561-4a08-B5D9-0AA38C6BE628 ),
  55. pointer_default( unique )
  56. ]
  57. interface IClusCfgServer : IUnknown
  58. {
  59. //////////////////////////////////////////////////////////////////////////
  60. //
  61. // STDMETHOD
  62. // GetClusterNodeInfo(
  63. // [ out ] IClusCfgNodeInfo ** ppClusterNodeInfoOut
  64. // )
  65. //
  66. // Description:
  67. // Get information about the computer on which this object is present.
  68. //
  69. // Parameter:
  70. // ppClusterNodeInfoOut
  71. // Pointer to the IClusterNodeInfo interface.
  72. //
  73. // Return Values:
  74. // S_OK
  75. // The call succeeded.
  76. //
  77. // other HRESULTs
  78. // The call failed.
  79. //
  80. //////////////////////////////////////////////////////////////////////////
  81. HRESULT
  82. GetClusterNodeInfo( [ out ] IClusCfgNodeInfo ** ppClusterNodeInfoOut );
  83. //////////////////////////////////////////////////////////////////////////
  84. //
  85. // STDMETHOD
  86. // GetManagedResourcesEnum(
  87. // [ out ] IEnumClusCfgManagedResources ** ppEnumManagedResourcesOut
  88. // )
  89. //
  90. // Description:
  91. // Get an enumeration of the resources on this computer that can be managed
  92. // by the cluster service. This is an enumeration of enumerators of the
  93. // resources.
  94. //
  95. // Parameter:
  96. // ppEnumManagedResourcesEnumOut
  97. // Pointer to the IEnumClusCfgManagedResources interface.
  98. //
  99. // Return Values:
  100. // S_OK
  101. // The call succeeded.
  102. //
  103. // other HRESULTs
  104. // The call failed.
  105. //
  106. //////////////////////////////////////////////////////////////////////////
  107. HRESULT
  108. GetManagedResourcesEnum(
  109. [ out ] IEnumClusCfgManagedResources ** ppEnumManagedResourcesOut
  110. );
  111. //////////////////////////////////////////////////////////////////////////
  112. //
  113. // STDMETHOD
  114. // GetNetworksEnum(
  115. // [ out ] IEnumClusCfgNetworks ** ppEnumNetworksOut
  116. // )
  117. //
  118. // Description:
  119. // Get an enumeration of all the networks on this computer.
  120. //
  121. // Parameter:
  122. // ppEnumNetworksOut
  123. // Pointer to the IEnumClusCfgNetworks inteface.
  124. //
  125. // Return Values:
  126. // S_OK
  127. // The call succeeded.
  128. //
  129. // other HRESULTs
  130. // The call failed.
  131. //
  132. //////////////////////////////////////////////////////////////////////////
  133. HRESULT
  134. GetNetworksEnum( [ out ] IEnumClusCfgNetworks ** ppEnumNetworksOut );
  135. //////////////////////////////////////////////////////////////////////////
  136. //
  137. // STDMETHOD
  138. // CommitChanges( void )
  139. //
  140. // Description:
  141. // Commit the changes to the node and join/form the cluster.
  142. //
  143. // Return Values:
  144. // S_OK
  145. // The commit succeeded.
  146. //
  147. // other HRESULTs
  148. // The commit failed.
  149. //
  150. //////////////////////////////////////////////////////////////////////////
  151. HRESULT
  152. CommitChanges( void );
  153. //
  154. // Binding String
  155. //
  156. //////////////////////////////////////////////////////////////////////////
  157. //
  158. // STDMETHOD
  159. // GetBindingString(
  160. // [ out ] BSTR * pbstrBindingStringOut
  161. // )
  162. //
  163. // Description:
  164. // Retrieves the binding string (IP address) used to connect
  165. // to this server.
  166. //
  167. // Notes:
  168. // Retrieves the binding string used to connect to the remote server.
  169. // If it returns NULL/S_FALSE, no binding was needed as it was a local
  170. // connection.
  171. //
  172. // Parameter:
  173. // pbstrBindingStringOut
  174. // Pointer to a BSTR. This should be freed by the caller by calling
  175. // SysFreeString( ).
  176. //
  177. // Return Values:
  178. // S_OK
  179. // Successly returned binding connection.
  180. //
  181. // S_FALSE
  182. // Local connection was established - no binding string available.
  183. //
  184. // E_OUTOFMEMORY
  185. // Out of memory.
  186. //
  187. // other HRESULTs.
  188. //
  189. //////////////////////////////////////////////////////////////////////////
  190. HRESULT
  191. GetBindingString( [ out ] BSTR * pbstrBindingStringOut );
  192. //////////////////////////////////////////////////////////////////////////
  193. //
  194. // STDMETHOD
  195. // SetBindingString(
  196. // [ in ] LPCWSTR pcszBindingStringIn
  197. // )
  198. //
  199. // Description:
  200. // Stores the binding string for this server.
  201. //
  202. // Notes:
  203. //
  204. // Parameter:
  205. // pcszBindingStringIn
  206. // The binding string to use when connecting to this server.
  207. //
  208. // Return Value:
  209. // S_OK
  210. // Success.
  211. //
  212. // E_OUTOFMEMORY
  213. // Out of memory.
  214. //
  215. // other HRESULT
  216. // The call failed.
  217. //
  218. //////////////////////////////////////////////////////////////////////////
  219. HRESULT
  220. SetBindingString(
  221. [ in, pointer_default( unique ) ] LPCWSTR pcszBindingStringIn
  222. );
  223. }; //*** interface IClusCfgServer
  224. //****************************************************************************
  225. //++
  226. //
  227. // interface IClusCfgPollingCallback
  228. //
  229. // Description:
  230. // This interface is used to callback to the client to indicate
  231. // status or progess (or both) about a task being completed on the
  232. // server.
  233. //
  234. //--
  235. //****************************************************************************
  236. [
  237. object,
  238. uuid( C72DB1FD-51A2-43e6-B708-D9DB7DA79630 ),
  239. pointer_default( unique )
  240. ]
  241. interface IClusCfgPollingCallback : IUnknown
  242. {
  243. //////////////////////////////////////////////////////////////////////////
  244. //
  245. // STDMETHOD
  246. // GetStatusReport(
  247. // [ out ] BSTR * pbstrNodeNameOut,
  248. // [ out ] CLSID * pclsidTaskMajorOut,
  249. // [ out ] CLSID * pclsidTaskMinorOut,
  250. // [ out ] ULONG * pulMinOut,
  251. // [ out ] ULONG * pulMaxOut,
  252. // [ out ] ULONG * pulCurrentOut,
  253. // [ out ] HRESULT * phrStatusOut,
  254. // [ out ] BSTR * pbstrDescriptionOut,
  255. // [ out ] FILETIME * pftTimeOut,
  256. // [ out ] BSTR * pbstrReferenceOut
  257. // )
  258. //
  259. // Description:
  260. // This method retreies a queued status report from the client.
  261. //
  262. // Parameters:
  263. // pbstrNodeNameOut
  264. // The name of the node (server) that sent the report.
  265. //
  266. // pclsidTaskMajorOut
  267. // CLSID of the major task item to give status about. For the
  268. // wizard, this indicates which node in the tree view control
  269. // to publish this status message under. If clsidTaskMajorIn
  270. // equals TASKID_Major_Client_Log, TASKID_Major_Server_Log, or
  271. // TASKID_Major_Client_And_Server_Log, only a log entry will be
  272. // made.
  273. //
  274. // pclsidTaskMinorOut
  275. // CLSID of the minor task to give status about. These should be
  276. // unique to each sub-task and message.
  277. //
  278. // pulMinOut
  279. // The min value of progress.
  280. //
  281. // pulMaxOut
  282. // The max value of progress.
  283. //
  284. // pulCurrentOut
  285. // The current value of progress.
  286. //
  287. // phrStatusOut
  288. // The current status.
  289. //
  290. // pbstrDescriptionOut
  291. // The description of the status. Can be NULL to indicate that nothing
  292. // needs to be passed.
  293. //
  294. // pftTimeOut
  295. // Time that this report was created.
  296. //
  297. // pbstrReferenceOut
  298. // Optional reference data, additional context, URL, etc. that
  299. // might better help explain the problem is this is an error
  300. // report.
  301. //
  302. // Return Values:
  303. // S_OK
  304. // The call succeeded.
  305. //
  306. // other HRESULTs
  307. // The call failed.
  308. //
  309. //////////////////////////////////////////////////////////////////////////
  310. HRESULT
  311. GetStatusReport(
  312. [ out ] BSTR * pbstrNodeNameOut,
  313. [ out ] CLSID * pclsidTaskMajorOut,
  314. [ out ] CLSID * pclsidTaskMinorOut,
  315. [ out ] ULONG * pulMinOut,
  316. [ out ] ULONG * pulMaxOut,
  317. [ out ] ULONG * pulCurrentOut,
  318. [ out ] HRESULT * phrStatusOut,
  319. [ out ] BSTR * pbstrDescriptionOut,
  320. [ out ] FILETIME * pftTimeOut,
  321. [ out ] BSTR * pbstrReferenceOut
  322. );
  323. //////////////////////////////////////////////////////////////////////////
  324. //
  325. // STDMETHOD
  326. // SetHResult(
  327. // [ in ] HRESULT hrIn
  328. // )
  329. //
  330. // Description:
  331. // Set the status of the SendStatusReport() back into the sender.
  332. //
  333. // Parameters:
  334. //
  335. // hrIn
  336. // The status of this call from the SendStatusReport() in
  337. // the middle tier.
  338. //
  339. // Return Values:
  340. // S_OK
  341. // The call succeeded.
  342. //
  343. // other HRESULTs
  344. // The call failed.
  345. //
  346. //////////////////////////////////////////////////////////////////////////
  347. HRESULT
  348. SetHResult(
  349. [ in ] HRESULT hrIn
  350. );
  351. }; //*** interface IClusCfgPollingCallback
  352. //****************************************************************************
  353. //++
  354. //
  355. // interface IClusCfgPollingCallbackInfo
  356. //
  357. // Description:
  358. // This interface is used to callback to the client to indicate
  359. // status or progess (or both) about a task being completed on the
  360. // server.
  361. //
  362. //--
  363. //****************************************************************************
  364. [
  365. object,
  366. uuid( 2AF55DA7-CB6F-40de-BB11-6673464B2C54 ),
  367. pointer_default( unique )
  368. ]
  369. interface IClusCfgPollingCallbackInfo : IUnknown
  370. {
  371. //////////////////////////////////////////////////////////////////////////
  372. //
  373. // STDMETHOD
  374. // GetCallback(
  375. // [ out ] IClusCfgPollingCallback ** ppiccpcOut
  376. // )
  377. //
  378. // Description:
  379. // Get a pointer to the polling callback object.
  380. //
  381. // Parameters:
  382. // piccpcOut
  383. // Pointer to the polling callback object.
  384. //
  385. // Return Values:
  386. // S_OK
  387. // The call succeeded.
  388. //
  389. // other HRESULTs
  390. // The call failed.
  391. //
  392. //////////////////////////////////////////////////////////////////////////
  393. HRESULT
  394. GetCallback(
  395. [ out ] IClusCfgPollingCallback ** ppiccpcOut
  396. );
  397. //////////////////////////////////////////////////////////////////////////
  398. //
  399. // STDMETHOD
  400. // SetPollingMode(
  401. // [ in ] BOOL fPollingModeIn
  402. // )
  403. //
  404. // Description:
  405. // Set the polling mode of the callback.
  406. //
  407. // Parameters:
  408. // fPollingModeIn
  409. // If true do polling, if false do not do polling.
  410. //
  411. // Return Values:
  412. // S_OK
  413. // The call succeeded.
  414. //
  415. // other HRESULTs
  416. // The call failed.
  417. //
  418. //////////////////////////////////////////////////////////////////////////
  419. HRESULT
  420. SetPollingMode(
  421. [ in ] BOOL fPollingModeIn
  422. );
  423. }; //*** interface IClusCfgPollingCallbackInfo
  424. //****************************************************************************
  425. //++
  426. //
  427. // interface IExtendObjectManager
  428. //
  429. // Description:
  430. // TODO: gpease 21-JUL-2000
  431. // Write a description.
  432. //
  433. //--
  434. //****************************************************************************
  435. [
  436. object,
  437. uuid( ca7bb0b9-700c-4dc5-991e-75f9e65ee975 ),
  438. local,
  439. pointer_default( unique )
  440. ]
  441. interface
  442. IExtendObjectManager : IUnknown
  443. {
  444. //////////////////////////////////////////////////////////////////////////
  445. //
  446. // STDMETHOD
  447. // IExtendObjectManager::FindObject(
  448. // [ in ] OBJECTCOOKIE cookieIn
  449. // , [ in ] REFCLSID rclsidTypeIn
  450. // , [ in ] LPCWSTR pcszNameIn
  451. // , [ out ] LPUNKNOWN * ppunkOut
  452. // )
  453. //
  454. // Description:
  455. // Lookups and retrieves information about an object that has the
  456. // type "dmtIn" and has the name "pcszName". It will return an
  457. // interface for the format specified by "dmfIn".
  458. //
  459. // Arguments:
  460. // cookieIn
  461. // Cookie that represents this object in the Object Manager.
  462. //
  463. // dmtIn
  464. // The type of the object to find.
  465. //
  466. // pcszName
  467. // The name of the object to find.
  468. //
  469. // ppunkOut
  470. // The requested data. NULL in indicates no data returned.
  471. //
  472. // Return Values:
  473. // S_OK
  474. // Success. Data format initialized and ready.
  475. //
  476. // S_FALSE
  477. // Success. But the data format does not want to be persistent.
  478. // This will cause the Object Manager to generate a new object
  479. // everytime.
  480. //
  481. // E_PENDING
  482. // The interface returned is valid, but the data is not available
  483. // yet. To indicate that the data is ready, send a notification
  484. // updating the status of the cookie (cookieIn).
  485. //
  486. // other HRESULTs.
  487. // The call failed.
  488. //
  489. //////////////////////////////////////////////////////////////////////////
  490. HRESULT
  491. FindObject (
  492. [ in ] OBJECTCOOKIE cookieIn
  493. , [ in ] REFCLSID rclsidTypeIn
  494. , [ in, pointer_default( unique ) ] LPCWSTR pcszNameIn
  495. , [ out ] LPUNKNOWN * ppunkOut
  496. );
  497. }; // interface IExtendObjectManager
  498. //****************************************************************************
  499. //++
  500. //
  501. // interface IClusCfgResTypeServicesInitialize
  502. //
  503. // Description:
  504. // This interface is used to initialize the resource type services component.
  505. //
  506. //--
  507. //****************************************************************************
  508. [
  509. object,
  510. uuid( 6E109698-DFC4-4471-ACE1-0414931B3BB3 ),
  511. pointer_default( unique )
  512. ]
  513. interface IClusCfgResTypeServicesInitialize : IUnknown
  514. {
  515. //////////////////////////////////////////////////////////////////////////////
  516. //++
  517. //
  518. // IClusCfgResTypeServicesInitialize::SetParameters(
  519. // [ in ] IClusCfgClusterInfo * pccciIn
  520. // )
  521. //
  522. // Description:
  523. // Set the parameters required by this component.
  524. //
  525. // Arguments:
  526. // pccciIn
  527. // Pointer to an interface that provides information about the cluster
  528. // being configured.
  529. //
  530. // Return Value:
  531. // S_OK
  532. // If the call succeeded
  533. //
  534. // Other HRESULTs
  535. // If the call failed.
  536. //
  537. //--
  538. //////////////////////////////////////////////////////////////////////////////
  539. HRESULT
  540. SetParameters(
  541. [ in ] IClusCfgClusterInfo * pccciIn
  542. );
  543. }; //*** interface IClusCfgResTypeServicesInitialize
  544. //****************************************************************************
  545. //++
  546. //
  547. // interface IClusCfgSetCredentials
  548. //
  549. //
  550. //--
  551. //****************************************************************************
  552. [
  553. object,
  554. uuid( 58E6E5B9-4788-4d9a-8255-1E274E5DCCB0 ),
  555. pointer_default( unique )
  556. ]
  557. interface IClusCfgSetCredentials : IUnknown
  558. {
  559. HRESULT
  560. SetDomainCredentials(
  561. [ in, pointer_default( unique ) ] LPCWSTR pszCredentials
  562. );
  563. } //*** IClusCfgSetCredentials
  564. //****************************************************************************
  565. //++
  566. //
  567. // interface IClusCfgVerify
  568. //
  569. // Description:
  570. // This interface is used to verify the connection to the server.
  571. //
  572. //--
  573. //****************************************************************************
  574. [
  575. object,
  576. uuid( D47BBEEC-2286-4514-AA90-7E88BD0FE543 ),
  577. pointer_default( unique )
  578. ]
  579. interface IClusCfgVerify : IUnknown
  580. {
  581. //////////////////////////////////////////////////////////////////////////
  582. //
  583. // STDMETHOD
  584. // VerifyCredentials(
  585. // [ in ] LPCWSTR pcszUserIn,
  586. // [ in ] LPCWSTR pcszDomainIn,
  587. // [ in ] LPCWSTR pcszPasswordIn
  588. // )
  589. //
  590. // Description:
  591. // Validate the credentials.
  592. //
  593. // Parameters:
  594. // pcszUserIn
  595. // The user name.
  596. //
  597. // pcszDomainIn
  598. // The domain name.
  599. //
  600. // pcszPasswordIn
  601. // The user's password.
  602. //
  603. // Return Values:
  604. // S_OK
  605. // The credentials are valid.
  606. //
  607. // other HRESULTs
  608. // The call failed.
  609. //
  610. //////////////////////////////////////////////////////////////////////////
  611. HRESULT
  612. VerifyCredentials(
  613. [ in, pointer_default( unique ) ] LPCWSTR pcszUserIn,
  614. [ in, pointer_default( unique ) ] LPCWSTR pcszDomainIn,
  615. [ in, pointer_default( unique ) ] LPCWSTR pcszPasswordIn
  616. );
  617. ///////////////////////////////////////////////////////////////////////////
  618. //
  619. // HRESULT
  620. // VerifyConnectionToCluster(
  621. // LPCWSTR pcszClusterNameIn
  622. // )
  623. //
  624. // Description:
  625. // The client passes the connection name to the created server object.
  626. // The server object will then verify that the client connected to
  627. // the CLUSTER is was supposed to. We have to do this because the
  628. // currently network situation can lead to unpredictable connections.
  629. //
  630. // Arguments:
  631. // pcszClusterNameIn
  632. // This is the FDQN for the cluster we are looking for.
  633. //
  634. // Return Values:
  635. // S_OK
  636. // The call succeeded and the client did connect to the correct
  637. // node.
  638. //
  639. // S_FALSE
  640. // The call succeeded but the client connected to a different node.
  641. //
  642. // other failure HRESULTs
  643. // The call failed.
  644. //
  645. ///////////////////////////////////////////////////////////////////////////
  646. HRESULT
  647. VerifyConnectionToCluster(
  648. [ in, pointer_default( unique ) ] LPCWSTR pcszClusterNameIn
  649. );
  650. ///////////////////////////////////////////////////////////////////////////
  651. //
  652. // HRESULT
  653. // VerifyConnectionToNode(
  654. // LPCWSTR pcszNodeNameIn
  655. // )
  656. //
  657. // Description:
  658. // The client passes the connection name to the created server object.
  659. // The server object will then verify that the client connected to
  660. // the NODE is was supposed to. We have to do this because the
  661. // currently network situation can lead to unpredictable connections.
  662. //
  663. // Arguments:
  664. // pcszNodeNameIn
  665. // This is the FDQN for the node we are looking for.
  666. //
  667. // Return Values:
  668. // S_OK
  669. // The call succeeded and the client did connect to the correct
  670. // node.
  671. //
  672. // S_FALSE
  673. // The call succeeded but the client connected to a different node.
  674. //
  675. // other failure HRESULTs
  676. // The call failed.
  677. //
  678. ///////////////////////////////////////////////////////////////////////////
  679. HRESULT
  680. VerifyConnectionToNode(
  681. [ in, pointer_default( unique ) ] LPCWSTR pcszNodeNameIn
  682. );
  683. } //*** IClusCfgVerify
  684. //****************************************************************************
  685. //++
  686. //
  687. // interface IClusCfgClusterConnection
  688. //
  689. // Description:
  690. // This interface is used for managing cluster connections.
  691. //
  692. //--
  693. //****************************************************************************
  694. [
  695. object,
  696. uuid( CE6EF90C-3602-41e7-95BD-AAFD37A676DF ),
  697. pointer_default( unique )
  698. ]
  699. interface IClusCfgClusterConnection : IUnknown
  700. {
  701. ///////////////////////////////////////////////////////////////////////////
  702. //
  703. // HRESULT
  704. // OpenConnection(
  705. // LPCWSTR pcszClusterNameIn
  706. // )
  707. //
  708. // Description:
  709. //
  710. // Arguments:
  711. // pcszClusterNameIn
  712. // This is the FDQN for the server we are looking for. This can
  713. // be a node or cluster name.
  714. //
  715. // Return Values:
  716. // S_OK
  717. // The call succeeded.
  718. //
  719. // other failure HRESULTs
  720. // The call failed.
  721. //
  722. ///////////////////////////////////////////////////////////////////////////
  723. HRESULT
  724. OpenConnection(
  725. [ in, pointer_default( unique ) ] LPCWSTR pcszClusterNameIn
  726. );
  727. } //*** IClusCfgClusterConnection
  728. //****************************************************************************
  729. //++
  730. //
  731. // interface IClusCfgBaseCluster
  732. //
  733. // Description:
  734. // The IClusCfgBaseCluster interface provides the functions
  735. // required to form a minimal cluster on a computer, join an existing
  736. // cluster, upgrade a node or cleanup a node.
  737. //
  738. //--
  739. //****************************************************************************
  740. [
  741. object,
  742. uuid( A8A5C613-2518-47f5-96CA-CAFA7FFBAF68 ),
  743. async_uuid( A8A5C614-2518-47f5-96CA-CAFA7FFBAF68 ),
  744. pointer_default( unique )
  745. ]
  746. interface IClusCfgBaseCluster : IUnknown
  747. {
  748. //////////////////////////////////////////////////////////////////////////
  749. //
  750. // STDMETHOD
  751. // SetForm(
  752. // [ in, string ] const WCHAR * pcszClusterNameIn
  753. // , [ in, string ] const WCHAR * pcszClusterBindingStringIn
  754. // , [ in, string ] const WCHAR * pcszClusterAccountNameIn
  755. // , [ in, string ] const WCHAR * pcszClusterAccountPwdIn
  756. // , [ in, string ] const WCHAR * pcszClusterAccountDomainIn
  757. // , [ in ] const DWORD dwClusterIPAddressIn
  758. // , [ in ] const DWORD dwClusterIPSubnetMaskIn
  759. // , [ in, string ] const WCHAR * pcszClusterIPNetworkIn
  760. // )
  761. //
  762. // Description:
  763. // Indicate that a cluster is to be formed on this computer. This
  764. // cluster has only three core resources, the network name resource,
  765. // the IP address resource and the Local Quorum resource.
  766. //
  767. // Parameters:
  768. // pcszClusterNameIn
  769. // Name of the cluster to be formed.
  770. //
  771. // pcszClusterBindingStringIn
  772. // pcszClusterAccountNameIn
  773. // pcszClusterAccountPwdIn
  774. // pcszClusterAccountDomainIn
  775. // Information about the account to be used as the cluster service
  776. // account.
  777. //
  778. // dwClusterIPAddressIn
  779. // dwClusterIPSubnetMaskIn
  780. // pcszClusterIPNetworkIn
  781. // Information about the cluster IP address.
  782. //
  783. // Return Values:
  784. // S_OK
  785. // The call succeeded.
  786. //
  787. // other HRESULTs
  788. // The call failed.
  789. //
  790. //////////////////////////////////////////////////////////////////////////
  791. HRESULT
  792. SetForm(
  793. [ in, string ] const WCHAR * pcszClusterNameIn
  794. , [ in, string ] const WCHAR * pcszClusterBindingStringIn
  795. , [ in, string ] const WCHAR * pcszClusterAccountNameIn
  796. , [ in, string ] const WCHAR * pcszClusterAccountPwdIn
  797. , [ in, string ] const WCHAR * pcszClusterAccountDomainIn
  798. , [ in ] const DWORD dwClusterIPAddressIn
  799. , [ in ] const DWORD dwClusterIPSubnetMaskIn
  800. , [ in, string ] const WCHAR * pcszClusterIPNetworkIn
  801. );
  802. //////////////////////////////////////////////////////////////////////////
  803. //
  804. // STDMETHOD
  805. // SetJoin(
  806. // [ in, string ] const WCHAR * pcszClusterNameIn
  807. // , [ in, string ] const WCHAR * pcszClusterBindingStringIn
  808. // , [ in, string ] const WCHAR * pcszClusterAccountNameIn
  809. // , [ in, string ] const WCHAR * pcszClusterAccountPwdIn
  810. // , [ in, string ] const WCHAR * pcszClusterAccountDomainIn
  811. // )
  812. //
  813. // Description:
  814. // Indicate that this computer is to be added to a cluster.
  815. //
  816. // Parameters:
  817. // pcszClusterNameIn
  818. // Name of the cluster to join.
  819. //
  820. // pcszClusterBindingStringIn
  821. // pcszClusterAccountNameIn
  822. // pcszClusterAccountPwdIn
  823. // pcszClusterAccountDomainIn
  824. // Information about the account to be used as the cluster service
  825. // account.
  826. //
  827. // Return Values:
  828. // S_OK
  829. // The call succeeded.
  830. //
  831. // other HRESULTs
  832. // The call failed.
  833. //
  834. //////////////////////////////////////////////////////////////////////////
  835. HRESULT
  836. SetJoin(
  837. [ in, string ] const WCHAR * pcszClusterNameIn
  838. , [ in, string ] const WCHAR * pcszClusterBindingStringIn
  839. , [ in, string ] const WCHAR * pcszClusterAccountNameIn
  840. , [ in, string ] const WCHAR * pcszClusterAccountPwdIn
  841. , [ in, string ] const WCHAR * pcszClusterAccountDomainIn
  842. );
  843. //////////////////////////////////////////////////////////////////////////
  844. //
  845. // STDMETHOD
  846. // SetCleanup( void )
  847. //
  848. // Description:
  849. // Indicate that this node needs to be cleaned up. This method is
  850. // called after the node has been evicted from a cluster to clean up
  851. // the state left over from its erstwhile cluster membership. This
  852. // method has to be called before the node can be a part of a cluster
  853. // again. Note, the ClusSvc service should not be running when this
  854. // action is committed.
  855. //
  856. // Parameters:
  857. // None.
  858. //
  859. // Return Values:
  860. // S_OK
  861. // The call succeeded.
  862. //
  863. // other HRESULTs
  864. // The call failed.
  865. //
  866. //////////////////////////////////////////////////////////////////////////
  867. HRESULT
  868. SetCleanup( void );
  869. //
  870. // MUSTDO: 04-APR-2000 VVasu
  871. //
  872. // Declare the SetUpgrade method here.
  873. //
  874. //////////////////////////////////////////////////////////////////////////
  875. //
  876. // STDMETHOD
  877. // Commit( void )
  878. //
  879. // Description:
  880. // This function actually performs the action indicated by a previous
  881. // Setxxx call.
  882. //
  883. // Parameters:
  884. // None.
  885. //
  886. // Return Values:
  887. // S_OK
  888. // The call succeeded.
  889. //
  890. // E_FAIL
  891. // If this commit has already been performed.
  892. //
  893. // E_INVALIDARG
  894. // If no action has been set using a SetXXX call.
  895. //
  896. // other HRESULTs
  897. // The call failed.
  898. //
  899. //////////////////////////////////////////////////////////////////////////
  900. HRESULT
  901. Commit( void );
  902. //////////////////////////////////////////////////////////////////////////
  903. //
  904. // STDMETHOD
  905. // Rollback( void )
  906. //
  907. // Description:
  908. // This function rolls back the action performed by a commit call.
  909. //
  910. // Parameters:
  911. // None.
  912. //
  913. // Return Values:
  914. // S_OK
  915. // The call succeeded.
  916. //
  917. // other HRESULTs
  918. // The call failed.
  919. //
  920. //////////////////////////////////////////////////////////////////////////
  921. HRESULT
  922. Rollback( void );
  923. }; //*** interface IClusCfgBaseCluster