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.

282 lines
8.3 KiB

  1. //////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 2000 Microsoft Corporation
  4. //
  5. // Module Name:
  6. // PrivateInterfaces.h
  7. //
  8. // Description:
  9. // This file contains the declaration of the private interfaces used in
  10. // the cluster configuration server.
  11. //
  12. // Documentation:
  13. //
  14. // Implementation Files:
  15. // None.
  16. //
  17. // Maintained By:
  18. // Galen Barbee (GalenB) 29-FEB-2000
  19. //
  20. //////////////////////////////////////////////////////////////////////////////
  21. // Make sure that this file is included only once per compile path.
  22. #pragma once
  23. //////////////////////////////////////////////////////////////////////////////
  24. // Include Files
  25. //////////////////////////////////////////////////////////////////////////////
  26. #include <ClusApi.h>
  27. //////////////////////////////////////////////////////////////////////////////
  28. // Constant Declarations
  29. //////////////////////////////////////////////////////////////////////////////
  30. //////////////////////////////////////////////////////////////////////////////
  31. //++
  32. //
  33. // class IClusCfgWbemServices
  34. //
  35. // Description:
  36. // The interface IClusCfgWbemServices is the private interface
  37. // used by the cluster configuration server to set the WBEM provider
  38. // in its children.
  39. //
  40. // Interfaces:
  41. // None.
  42. //
  43. //--
  44. //////////////////////////////////////////////////////////////////////////////
  45. class IClusCfgWbemServices : public IUnknown
  46. {
  47. public:
  48. STDMETHOD( SetWbemServices )( IWbemServices * pIWbemServicesIn ) PURE;
  49. }; //*** Class IClusCfgWbemServices
  50. //////////////////////////////////////////////////////////////////////////////
  51. //++
  52. //
  53. // class IClusCfgDeviceEnums
  54. //
  55. // Description:
  56. // The interface IClusCfgDeviceEnums is the private interface
  57. // used by the cluster configuration server to set the devices and
  58. // network enums in its children.
  59. //
  60. // Interfaces:
  61. // None.
  62. //
  63. //--
  64. //////////////////////////////////////////////////////////////////////////////
  65. class IClusCfgDeviceEnums : public IUnknown
  66. {
  67. public:
  68. STDMETHOD( SetDevices )( IUnknown * punkEnumStorage, IUnknown * punkEnumNetworks ) PURE;
  69. }; //*** Class IClusCfgDeviceEnums
  70. //////////////////////////////////////////////////////////////////////////////
  71. //++
  72. //
  73. // class IClusCfgSetWbemObject
  74. //
  75. // Description:
  76. // The interface IClusCfgSetWbemObject is the private interface used by the
  77. // cluster configuration server to set the WBem object.
  78. //
  79. // Interfaces:
  80. // None.
  81. //
  82. //--
  83. //////////////////////////////////////////////////////////////////////////////
  84. class IClusCfgSetWbemObject : public IUnknown
  85. {
  86. public:
  87. STDMETHOD( SetWbemObject )(
  88. IWbemClassObject * pObjectIn
  89. , bool * pfRetainObjectOut
  90. ) PURE;
  91. }; //*** Class IClusCfgSetWbemObject
  92. //////////////////////////////////////////////////////////////////////////////
  93. //++
  94. //
  95. // class IClusCfgSetClusterNodeInfo
  96. //
  97. // Description:
  98. // The interface IClusCfgSetClusterNodeInfo is the private
  99. // interface used by the cluster configuration server to tell the
  100. // IClusCfgClusterInfo object if this node is part of a cluster.
  101. //
  102. // Interfaces:
  103. // None.
  104. //
  105. //--
  106. //////////////////////////////////////////////////////////////////////////////
  107. class IClusCfgSetClusterNodeInfo : public IUnknown
  108. {
  109. public:
  110. STDMETHOD( SetClusterNodeInfo )( IClusCfgNodeInfo * pNodeInfoIn ) PURE;
  111. }; //*** Class IClusCfgSetClusterNodeInfo
  112. //////////////////////////////////////////////////////////////////////////////
  113. //++
  114. //
  115. // class IClusCfgSetClusterHandles
  116. //
  117. // Description:
  118. // The interface IClusCfgSetClusterHandles is the private
  119. // interface used by the cluster configuration server to tell the
  120. // IClusCfgClusterServices object what handles to use.
  121. //
  122. // Interfaces:
  123. // None.
  124. //
  125. //--
  126. //////////////////////////////////////////////////////////////////////////////
  127. class IClusCfgSetClusterHandles : public IUnknown
  128. {
  129. public:
  130. STDMETHOD( SetClusterGroupHandle )( HGROUP hGroupIn ) PURE;
  131. STDMETHOD( SetClusterHandle )( HCLUSTER hClusterIn ) PURE;
  132. }; //*** Class IClusCfgSetClusterHandles
  133. //////////////////////////////////////////////////////////////////////////////
  134. //++
  135. //
  136. // class IClusCfgPhysicalDiskProperties
  137. //
  138. // Description:
  139. // The interface IClusCfgPhysicalDiskProperties is the private
  140. // interface used by the cluster configuration server to get the
  141. // SCSI bus number and whether the disk was booted or not.
  142. //
  143. // Interfaces:
  144. // None.
  145. //
  146. //--
  147. //////////////////////////////////////////////////////////////////////////////
  148. class IClusCfgPhysicalDiskProperties : public IUnknown
  149. {
  150. public:
  151. STDMETHOD( IsThisLogicalDisk )( WCHAR cLogicalDiskIn ) PURE;
  152. STDMETHOD( HrGetSCSIBus )( ULONG * pulSCSIBusOut ) PURE;
  153. STDMETHOD( HrGetSCSIPort )( ULONG * pulSCSIPortOut ) PURE;
  154. STDMETHOD( CanBeManaged )( void ) PURE;
  155. STDMETHOD( HrGetDeviceID )( BSTR * pbstrDeviceIDOut ) PURE;
  156. STDMETHOD( HrGetSignature )( DWORD * pdwSignatureOut ) PURE;
  157. STDMETHOD( HrSetFriendlyName )( LPCWSTR pcszFriendlyNameIn ) PURE;
  158. STDMETHOD( HrGetDeviceIndex )( DWORD * pidxDeviceOut ) PURE;
  159. STDMETHOD( HrIsDynamicDisk )( void ) PURE;
  160. STDMETHOD( HrIsGPTDisk )( void ) PURE;
  161. STDMETHOD( HrGetDiskNames )( BSTR * pbstrDiskNameOut, BSTR * pbstrDeviceNameOut ) PURE;
  162. }; //*** Class IClusCfgPhysicalDiskProperties
  163. //////////////////////////////////////////////////////////////////////////////
  164. //++
  165. //
  166. // class IClusCfgPartitionProperties
  167. //
  168. // Description:
  169. // The interface IClusCfgPartitionProperties is the private
  170. // interface used by the cluster configuration server to get the
  171. // properties of a disk partition.
  172. //
  173. // Interfaces:
  174. // None.
  175. //
  176. //--
  177. //////////////////////////////////////////////////////////////////////////////
  178. class IClusCfgPartitionProperties : public IUnknown
  179. {
  180. public:
  181. STDMETHOD( IsThisLogicalDisk )( WCHAR cLogicalDiskIn ) PURE;
  182. STDMETHOD( IsNTFS )( void ) PURE;
  183. STDMETHOD( GetFriendlyName )( BSTR * pbstrNameOut ) PURE;
  184. }; //*** Class IClusCfgPartitionProperties
  185. //////////////////////////////////////////////////////////////////////////////
  186. //++
  187. //
  188. // class IClusCfgLoadResource
  189. //
  190. // Description:
  191. // The interface IClusCfgLoadResource is the private interface used
  192. // by the cluster configuration server to get a resource loaded from
  193. // a cluster.
  194. //
  195. //--
  196. //////////////////////////////////////////////////////////////////////////////
  197. class IClusCfgLoadResource : public IUnknown
  198. {
  199. public:
  200. STDMETHOD( LoadResource )( HCLUSTER hClusterIn, HRESOURCE hResourceIn ) PURE;
  201. }; //*** Class IClusCfgLoadResource
  202. //////////////////////////////////////////////////////////////////////////////
  203. //++
  204. //
  205. // class IClusCfgSetPollingCallback
  206. //
  207. // Description:
  208. // The interface IClusCfgSetPollingCallback is the private interface used
  209. // by the cluster configuration server to tell the callback object that
  210. // it should do polling.
  211. //
  212. //--
  213. //////////////////////////////////////////////////////////////////////////////
  214. class IClusCfgSetPollingCallback : public IUnknown
  215. {
  216. public:
  217. STDMETHOD( SetPollingMode )( BOOL fUsePollingModeIn ) PURE;
  218. }; //*** Class IClusCfgSetPollingCallback
  219. //////////////////////////////////////////////////////////////////////////////
  220. //++
  221. //
  222. // class IClusCfgClusterNetworkInfo
  223. //
  224. // Description:
  225. // The interface IClusCfgClusterNetworkInfo is the private interface used
  226. // by the cluster configuration server to tell whether or not a network
  227. // is already a cluster network.
  228. //
  229. //--
  230. //////////////////////////////////////////////////////////////////////////////
  231. class IClusCfgClusterNetworkInfo : public IUnknown
  232. {
  233. public:
  234. STDMETHOD( HrIsClusterNetwork )( void ) PURE;
  235. STDMETHOD( HrGetNetUID )( BSTR * pbstrUIDOut, const CLSID * pclsidMajorIdIn, LPCWSTR pwszNetworkNameIn ) PURE;
  236. STDMETHOD( HrGetPrimaryNetAddress )( IClusCfgIPAddressInfo ** ppIPAddressOut, const CLSID * pclsidMajorIdIn, LPCWSTR pwszNetworkNameIn ) PURE;
  237. }; //*** Class IClusCfgClusterNetworkInfo