Mercurial > games > semicongine
comparison fuhtark_test/include/winapi/clusapi.h @ 1500:91c8c3b7cbf0
add: futhark tests for generating vulkan api
| author | sam <sam@basx.dev> |
|---|---|
| date | Wed, 26 Nov 2025 21:36:48 +0700 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 1499:1f58458b7ef7 | 1500:91c8c3b7cbf0 |
|---|---|
| 1 /** | |
| 2 * This file has no copyright assigned and is placed in the Public Domain. | |
| 3 * This file is part of the w64 mingw-runtime package. | |
| 4 * No warranty is given; refer to the file DISCLAIMER within this package. | |
| 5 */ | |
| 6 #ifndef _CLUSTER_API_ | |
| 7 #define _CLUSTER_API_ | |
| 8 | |
| 9 #define CLUSAPI_VERSION 0x0500 | |
| 10 | |
| 11 #ifdef __cplusplus | |
| 12 extern "C" { | |
| 13 #endif | |
| 14 | |
| 15 #ifndef _CLUSTER_API_TYPES_ | |
| 16 typedef struct _HCLUSTER *HCLUSTER; | |
| 17 typedef struct _HNODE *HNODE; | |
| 18 typedef struct _HRESOURCE *HRESOURCE; | |
| 19 typedef struct _HGROUP *HGROUP; | |
| 20 typedef struct _HNETWORK *HNETWORK; | |
| 21 typedef struct _HNETINTERFACE *HNETINTERFACE; | |
| 22 typedef struct _HCHANGE *HCHANGE; | |
| 23 typedef struct _HCLUSENUM *HCLUSENUM; | |
| 24 typedef struct _HGROUPENUM *HGROUPENUM; | |
| 25 typedef struct _HRESENUM *HRESENUM; | |
| 26 typedef struct _HNETWORKENUM *HNETWORKENUM; | |
| 27 typedef struct _HNODEENUM *HNODEENUM; | |
| 28 typedef struct _HRESTYPEENUM *HRESTYPEENUM; | |
| 29 #endif | |
| 30 | |
| 31 #define MAX_CLUSTERNAME_LENGTH MAX_COMPUTERNAME_LENGTH | |
| 32 | |
| 33 #ifndef _CLUSTER_API_TYPES_ | |
| 34 | |
| 35 typedef enum CLUSTER_QUORUM_TYPE { | |
| 36 OperationalQuorum,ModifyQuorum | |
| 37 } CLUSTER_QUORUM_TYPE; | |
| 38 | |
| 39 typedef struct CLUSTERVERSIONINFO_NT4 { | |
| 40 DWORD dwVersionInfoSize; | |
| 41 WORD MajorVersion; | |
| 42 WORD MinorVersion; | |
| 43 WORD BuildNumber; | |
| 44 WCHAR szVendorId[64]; | |
| 45 WCHAR szCSDVersion[64]; | |
| 46 } CLUSTERVERSIONINFO_NT4,*PCLUSTERVERSIONINFO_NT4; | |
| 47 | |
| 48 typedef struct CLUSTERVERSIONINFO { | |
| 49 DWORD dwVersionInfoSize; | |
| 50 WORD MajorVersion; | |
| 51 WORD MinorVersion; | |
| 52 WORD BuildNumber; | |
| 53 WCHAR szVendorId[64]; | |
| 54 WCHAR szCSDVersion[64]; | |
| 55 DWORD dwClusterHighestVersion; | |
| 56 DWORD dwClusterLowestVersion; | |
| 57 DWORD dwFlags; | |
| 58 DWORD dwReserved; | |
| 59 } CLUSTERVERSIONINFO,*LPCLUSTERVERSIONINFO,*PCLUSTERVERSIONINFO; | |
| 60 | |
| 61 typedef struct CLUS_STARTING_PARAMS { | |
| 62 DWORD dwSize; | |
| 63 WINBOOL bForm; | |
| 64 WINBOOL bFirst; | |
| 65 } CLUS_STARTING_PARAMS,*PCLUS_STARTING_PARAMS; | |
| 66 | |
| 67 #define CLUSTER_VERSION_FLAG_MIXED_MODE 0x00000001 | |
| 68 | |
| 69 #define NT4_MAJOR_VERSION 1 | |
| 70 #define NT4SP4_MAJOR_VERSION 2 | |
| 71 #define NT5_MAJOR_VERSION 3 | |
| 72 #define NT51_MAJOR_VERSION 4 | |
| 73 | |
| 74 #define CLUSTER_VERSION_UNKNOWN 0xFFFFFFFF | |
| 75 | |
| 76 #define CLUSTER_MAKE_VERSION(_maj,_min) (((_maj) << 16) | (_min)) | |
| 77 #define CLUSTER_GET_MAJOR_VERSION(_ver) ((_ver) >> 16) | |
| 78 #define CLUSTER_GET_MINOR_VERSION(_ver) ((_ver) & 0xFFFF) | |
| 79 | |
| 80 #define CLUSTER_INSTALLED 0x00000001 | |
| 81 #define CLUSTER_CONFIGURED 0x00000002 | |
| 82 #define CLUSTER_RUNNING 0x00000010 | |
| 83 | |
| 84 typedef enum NODE_CLUSTER_STATE { | |
| 85 ClusterStateNotInstalled = 0x00000000,ClusterStateNotConfigured = CLUSTER_INSTALLED,ClusterStateNotRunning = CLUSTER_INSTALLED | CLUSTER_CONFIGURED, | |
| 86 ClusterStateRunning = CLUSTER_INSTALLED | CLUSTER_CONFIGURED | CLUSTER_RUNNING | |
| 87 } NODE_CLUSTER_STATE; | |
| 88 | |
| 89 #define CLUSCTL_RESOURCE_STATE_CHANGE_REASON_VERSION_1 1 | |
| 90 | |
| 91 typedef enum CLUSTER_RESOURCE_STATE_CHANGE_REASON { | |
| 92 eResourceStateChangeReasonUnknown,eResourceStateChangeReasonMove,eResourceStateChangeReasonFailover,eResourceStateChangeReasonFailedMove, | |
| 93 eResourceStateChangeReasonShutdown,eResourceStateChangeReasonRundown | |
| 94 } CLUSTER_RESOURCE_STATE_CHANGE_REASON; | |
| 95 | |
| 96 typedef struct _CLUSCTL_RESOURCE_STATE_CHANGE_REASON_STRUCT { | |
| 97 DWORD dwSize; | |
| 98 DWORD dwVersion; | |
| 99 CLUSTER_RESOURCE_STATE_CHANGE_REASON eReason; | |
| 100 } CLUSCTL_RESOURCE_STATE_CHANGE_REASON_STRUCT,*PCLUSCTL_RESOURCE_STATE_CHANGE_REASON_STRUCT; | |
| 101 #endif | |
| 102 | |
| 103 #define CLUSAPI_READ_ACCESS 0x00000001L | |
| 104 #define CLUSAPI_CHANGE_ACCESS 0x00000002L | |
| 105 #define CLUSAPI_NO_ACCESS 0x00000004L | |
| 106 #define CLUSAPI_ALL_ACCESS (CLUSAPI_READ_ACCESS | CLUSAPI_CHANGE_ACCESS) | |
| 107 | |
| 108 typedef enum CLUSTER_SET_PASSWORD_FLAGS { | |
| 109 CLUSTER_SET_PASSWORD_IGNORE_DOWN_NODES = 1 | |
| 110 } CLUSTER_SET_PASSWORD_FLAGS; | |
| 111 | |
| 112 typedef struct CLUSTER_SET_PASSWORD_STATUS { | |
| 113 DWORD NodeId; | |
| 114 BOOLEAN SetAttempted; | |
| 115 DWORD ReturnStatus; | |
| 116 } CLUSTER_SET_PASSWORD_STATUS,*PCLUSTER_SET_PASSWORD_STATUS; | |
| 117 | |
| 118 DWORD WINAPI GetNodeClusterState(LPCWSTR lpszNodeName,DWORD *pdwClusterState); | |
| 119 HCLUSTER WINAPI OpenCluster(LPCWSTR lpszClusterName); | |
| 120 WINBOOL WINAPI CloseCluster(HCLUSTER hCluster); | |
| 121 DWORD WINAPI SetClusterName(HCLUSTER hCluster,LPCWSTR lpszNewClusterName); | |
| 122 DWORD WINAPI GetClusterInformation(HCLUSTER hCluster,LPWSTR lpszClusterName,LPDWORD lpcchClusterName,LPCLUSTERVERSIONINFO lpClusterInfo); | |
| 123 DWORD WINAPI GetClusterQuorumResource(HCLUSTER hCluster,LPWSTR lpszResourceName,LPDWORD lpcchResourceName,LPWSTR lpszDeviceName,LPDWORD lpcchDeviceName,LPDWORD lpdwMaxQuorumLogSize); | |
| 124 DWORD WINAPI SetClusterQuorumResource(HRESOURCE hResource,LPCWSTR lpszDeviceName,DWORD dwMaxQuoLogSize); | |
| 125 DWORD WINAPI BackupClusterDatabase(HCLUSTER hCluster,LPCWSTR lpszPathName); | |
| 126 DWORD WINAPI RestoreClusterDatabase(LPCWSTR lpszPathName,WINBOOL bForce,LPCWSTR lpszQuorumDriveLetter); | |
| 127 DWORD WINAPI SetClusterNetworkPriorityOrder(HCLUSTER hCluster,DWORD NetworkCount,HNETWORK NetworkList[]); | |
| 128 DWORD WINAPI SetClusterServiceAccountPassword(LPCWSTR lpszClusterName,LPCWSTR lpszNewPassword,DWORD dwFlags,PCLUSTER_SET_PASSWORD_STATUS lpReturnStatusBuffer,LPDWORD lpcbReturnStatusBufferSize); | |
| 129 DWORD WINAPI ClusterControl(HCLUSTER hCluster,HNODE hHostNode,DWORD dwControlCode,LPVOID lpInBuffer,DWORD nInBufferSize,LPVOID lpOutBuffer,DWORD nOutBufferSize,LPDWORD lpBytesReturned); | |
| 130 | |
| 131 #ifndef _CLUSTER_API_TYPES_ | |
| 132 | |
| 133 typedef enum CLUSTER_CHANGE { | |
| 134 CLUSTER_CHANGE_NODE_STATE = 0x00000001,CLUSTER_CHANGE_NODE_DELETED = 0x00000002,CLUSTER_CHANGE_NODE_ADDED = 0x00000004, | |
| 135 CLUSTER_CHANGE_NODE_PROPERTY = 0x00000008,CLUSTER_CHANGE_REGISTRY_NAME = 0x00000010,CLUSTER_CHANGE_REGISTRY_ATTRIBUTES = 0x00000020, | |
| 136 CLUSTER_CHANGE_REGISTRY_VALUE = 0x00000040,CLUSTER_CHANGE_REGISTRY_SUBTREE = 0x00000080,CLUSTER_CHANGE_RESOURCE_STATE = 0x00000100, | |
| 137 CLUSTER_CHANGE_RESOURCE_DELETED = 0x00000200,CLUSTER_CHANGE_RESOURCE_ADDED = 0x00000400,CLUSTER_CHANGE_RESOURCE_PROPERTY = 0x00000800, | |
| 138 CLUSTER_CHANGE_GROUP_STATE = 0x00001000,CLUSTER_CHANGE_GROUP_DELETED = 0x00002000,CLUSTER_CHANGE_GROUP_ADDED = 0x00004000, | |
| 139 CLUSTER_CHANGE_GROUP_PROPERTY = 0x00008000,CLUSTER_CHANGE_RESOURCE_TYPE_DELETED = 0x00010000,CLUSTER_CHANGE_RESOURCE_TYPE_ADDED = 0x00020000, | |
| 140 CLUSTER_CHANGE_RESOURCE_TYPE_PROPERTY = 0x00040000,CLUSTER_CHANGE_CLUSTER_RECONNECT = 0x00080000,CLUSTER_CHANGE_NETWORK_STATE = 0x00100000, | |
| 141 CLUSTER_CHANGE_NETWORK_DELETED = 0x00200000,CLUSTER_CHANGE_NETWORK_ADDED = 0x00400000,CLUSTER_CHANGE_NETWORK_PROPERTY = 0x00800000, | |
| 142 CLUSTER_CHANGE_NETINTERFACE_STATE = 0x01000000,CLUSTER_CHANGE_NETINTERFACE_DELETED = 0x02000000,CLUSTER_CHANGE_NETINTERFACE_ADDED = 0x04000000, | |
| 143 CLUSTER_CHANGE_NETINTERFACE_PROPERTY = 0x08000000,CLUSTER_CHANGE_QUORUM_STATE = 0x10000000,CLUSTER_CHANGE_CLUSTER_STATE = 0x20000000, | |
| 144 CLUSTER_CHANGE_CLUSTER_PROPERTY = 0x40000000,CLUSTER_CHANGE_HANDLE_CLOSE = 0x80000000, | |
| 145 CLUSTER_CHANGE_ALL = (CLUSTER_CHANGE_NODE_STATE | CLUSTER_CHANGE_NODE_DELETED | CLUSTER_CHANGE_NODE_ADDED | CLUSTER_CHANGE_NODE_PROPERTY | CLUSTER_CHANGE_REGISTRY_NAME | CLUSTER_CHANGE_REGISTRY_ATTRIBUTES | CLUSTER_CHANGE_REGISTRY_VALUE | CLUSTER_CHANGE_REGISTRY_SUBTREE | CLUSTER_CHANGE_RESOURCE_STATE | CLUSTER_CHANGE_RESOURCE_DELETED | CLUSTER_CHANGE_RESOURCE_ADDED | CLUSTER_CHANGE_RESOURCE_PROPERTY | CLUSTER_CHANGE_GROUP_STATE | CLUSTER_CHANGE_GROUP_DELETED | CLUSTER_CHANGE_GROUP_ADDED | CLUSTER_CHANGE_GROUP_PROPERTY | CLUSTER_CHANGE_RESOURCE_TYPE_DELETED | CLUSTER_CHANGE_RESOURCE_TYPE_ADDED | CLUSTER_CHANGE_RESOURCE_TYPE_PROPERTY | CLUSTER_CHANGE_NETWORK_STATE | CLUSTER_CHANGE_NETWORK_DELETED | CLUSTER_CHANGE_NETWORK_ADDED | CLUSTER_CHANGE_NETWORK_PROPERTY | CLUSTER_CHANGE_NETINTERFACE_STATE | CLUSTER_CHANGE_NETINTERFACE_DELETED | CLUSTER_CHANGE_NETINTERFACE_ADDED | CLUSTER_CHANGE_NETINTERFACE_PROPERTY | CLUSTER_CHANGE_QUORUM_STATE | CLUSTER_CHANGE_CLUSTER_STATE | CLUSTER_CHANGE_CLUSTER_PROPERTY | CLUSTER_CHANGE_CLUSTER_RECONNECT | CLUSTER_CHANGE_HANDLE_CLOSE) | |
| 146 } CLUSTER_CHANGE; | |
| 147 #endif | |
| 148 | |
| 149 HCHANGE WINAPI CreateClusterNotifyPort(HCHANGE hChange,HCLUSTER hCluster,DWORD dwFilter,DWORD_PTR dwNotifyKey); | |
| 150 DWORD WINAPI RegisterClusterNotify(HCHANGE hChange,DWORD dwFilterType,HANDLE hObject,DWORD_PTR dwNotifyKey); | |
| 151 DWORD WINAPI GetClusterNotify(HCHANGE hChange,DWORD_PTR *lpdwNotifyKey,LPDWORD lpdwFilterType,LPWSTR lpszName,LPDWORD lpcchName,DWORD dwMilliseconds); | |
| 152 WINBOOL WINAPI CloseClusterNotifyPort(HCHANGE hChange); | |
| 153 | |
| 154 #ifndef _CLUSTER_API_TYPES_ | |
| 155 typedef enum CLUSTER_ENUM { | |
| 156 CLUSTER_ENUM_NODE = 0x00000001,CLUSTER_ENUM_RESTYPE = 0x00000002,CLUSTER_ENUM_RESOURCE = 0x00000004,CLUSTER_ENUM_GROUP = 0x00000008, | |
| 157 CLUSTER_ENUM_NETWORK = 0x00000010,CLUSTER_ENUM_NETINTERFACE = 0x00000020,CLUSTER_ENUM_INTERNAL_NETWORK = 0x80000000, | |
| 158 CLUSTER_ENUM_ALL = (CLUSTER_ENUM_NODE | CLUSTER_ENUM_RESTYPE | CLUSTER_ENUM_RESOURCE | CLUSTER_ENUM_GROUP | CLUSTER_ENUM_NETWORK | CLUSTER_ENUM_NETINTERFACE) | |
| 159 } CLUSTER_ENUM; | |
| 160 #endif | |
| 161 | |
| 162 HCLUSENUM WINAPI ClusterOpenEnum(HCLUSTER hCluster,DWORD dwType); | |
| 163 DWORD WINAPI ClusterGetEnumCount(HCLUSENUM hEnum); | |
| 164 DWORD WINAPI ClusterEnum(HCLUSENUM hEnum,DWORD dwIndex,LPDWORD lpdwType,LPWSTR lpszName,LPDWORD lpcchName); | |
| 165 DWORD WINAPI ClusterCloseEnum(HCLUSENUM hEnum); | |
| 166 | |
| 167 #ifndef _CLUSTER_API_TYPES_ | |
| 168 typedef enum CLUSTER_NODE_ENUM { | |
| 169 CLUSTER_NODE_ENUM_NETINTERFACES = 0x00000001,CLUSTER_NODE_ENUM_ALL = CLUSTER_NODE_ENUM_NETINTERFACES | |
| 170 } CLUSTER_NODE_ENUM; | |
| 171 | |
| 172 typedef enum CLUSTER_NODE_STATE { | |
| 173 ClusterNodeStateUnknown = -1,ClusterNodeUp,ClusterNodeDown,ClusterNodePaused,ClusterNodeJoining | |
| 174 } CLUSTER_NODE_STATE; | |
| 175 #endif | |
| 176 | |
| 177 HNODE WINAPI OpenClusterNode(HCLUSTER hCluster,LPCWSTR lpszNodeName); | |
| 178 WINBOOL WINAPI CloseClusterNode(HNODE hNode); | |
| 179 CLUSTER_NODE_STATE WINAPI GetClusterNodeState(HNODE hNode); | |
| 180 DWORD WINAPI GetClusterNodeId(HNODE hNode,LPWSTR lpszNodeId,LPDWORD lpcchName); | |
| 181 #define GetCurrentClusterNodeId(_lpszNodeId_,_lpcchName_) GetClusterNodeId(NULL,(_lpszNodeId_),(_lpcchName_)) | |
| 182 HCLUSTER WINAPI GetClusterFromNode(HNODE hNode); | |
| 183 DWORD WINAPI PauseClusterNode(HNODE hNode); | |
| 184 DWORD WINAPI ResumeClusterNode(HNODE hNode); | |
| 185 DWORD WINAPI EvictClusterNode(HNODE hNode); | |
| 186 HNODEENUM WINAPI ClusterNodeOpenEnum(HNODE hNode,DWORD dwType); | |
| 187 DWORD WINAPI ClusterNodeGetEnumCount(HNODEENUM hNodeEnum); | |
| 188 DWORD WINAPI ClusterNodeCloseEnum(HNODEENUM hNodeEnum); | |
| 189 DWORD WINAPI ClusterNodeEnum(HNODEENUM hNodeEnum,DWORD dwIndex,LPDWORD lpdwType,LPWSTR lpszName,LPDWORD lpcchName); | |
| 190 DWORD WINAPI EvictClusterNodeEx(HNODE hNode,DWORD dwTimeOut,HRESULT *phrCleanupStatus); | |
| 191 HKEY WINAPI GetClusterResourceTypeKey(HCLUSTER hCluster,LPCWSTR lpszTypeName,REGSAM samDesired); | |
| 192 | |
| 193 #ifndef _CLUSTER_API_TYPES_ | |
| 194 typedef enum CLUSTER_GROUP_ENUM { | |
| 195 CLUSTER_GROUP_ENUM_CONTAINS = 0x00000001,CLUSTER_GROUP_ENUM_NODES = 0x00000002, | |
| 196 CLUSTER_GROUP_ENUM_ALL = (CLUSTER_GROUP_ENUM_CONTAINS | CLUSTER_GROUP_ENUM_NODES) | |
| 197 } CLUSTER_GROUP_ENUM; | |
| 198 | |
| 199 typedef enum CLUSTER_GROUP_STATE { | |
| 200 ClusterGroupStateUnknown = -1,ClusterGroupOnline,ClusterGroupOffline,ClusterGroupFailed,ClusterGroupPartialOnline,ClusterGroupPending | |
| 201 } CLUSTER_GROUP_STATE; | |
| 202 | |
| 203 typedef enum CLUSTER_GROUP_AUTOFAILBACK_TYPE { | |
| 204 ClusterGroupPreventFailback = 0,ClusterGroupAllowFailback,ClusterGroupFailbackTypeCount | |
| 205 } CLUSTER_GROUP_AUTOFAILBACK_TYPE,CGAFT; | |
| 206 #endif | |
| 207 | |
| 208 HGROUP WINAPI CreateClusterGroup(HCLUSTER hCluster,LPCWSTR lpszGroupName); | |
| 209 HGROUP WINAPI OpenClusterGroup(HCLUSTER hCluster,LPCWSTR lpszGroupName); | |
| 210 WINBOOL WINAPI CloseClusterGroup(HGROUP hGroup); | |
| 211 HCLUSTER WINAPI GetClusterFromGroup(HGROUP hGroup); | |
| 212 CLUSTER_GROUP_STATE WINAPI GetClusterGroupState(HGROUP hGroup,LPWSTR lpszNodeName,LPDWORD lpcchNodeName); | |
| 213 DWORD WINAPI SetClusterGroupName(HGROUP hGroup,LPCWSTR lpszGroupName); | |
| 214 DWORD WINAPI SetClusterGroupNodeList(HGROUP hGroup,DWORD NodeCount,HNODE NodeList[]); | |
| 215 DWORD WINAPI OnlineClusterGroup(HGROUP hGroup,HNODE hDestinationNode); | |
| 216 DWORD WINAPI MoveClusterGroup(HGROUP hGroup,HNODE hDestinationNode); | |
| 217 DWORD WINAPI OfflineClusterGroup(HGROUP hGroup); | |
| 218 DWORD WINAPI DeleteClusterGroup(HGROUP hGroup); | |
| 219 HGROUPENUM WINAPI ClusterGroupOpenEnum(HGROUP hGroup,DWORD dwType); | |
| 220 DWORD WINAPI ClusterGroupGetEnumCount(HGROUPENUM hGroupEnum); | |
| 221 DWORD WINAPI ClusterGroupEnum(HGROUPENUM hGroupEnum,DWORD dwIndex,LPDWORD lpdwType,LPWSTR lpszResourceName,LPDWORD lpcchName); | |
| 222 DWORD WINAPI ClusterGroupCloseEnum(HGROUPENUM hGroupEnum); | |
| 223 | |
| 224 #ifndef _CLUSTER_API_TYPES_ | |
| 225 typedef enum CLUSTER_RESOURCE_STATE { | |
| 226 ClusterResourceStateUnknown = -1,ClusterResourceInherited,ClusterResourceInitializing,ClusterResourceOnline,ClusterResourceOffline, | |
| 227 ClusterResourceFailed,ClusterResourcePending = 128,ClusterResourceOnlinePending,ClusterResourceOfflinePending | |
| 228 } CLUSTER_RESOURCE_STATE; | |
| 229 | |
| 230 typedef enum CLUSTER_RESOURCE_RESTART_ACTION { | |
| 231 ClusterResourceDontRestart = 0,ClusterResourceRestartNoNotify,ClusterResourceRestartNotify,ClusterResourceRestartActionCount | |
| 232 } CLUSTER_RESOURCE_RESTART_ACTION,CRRA; | |
| 233 | |
| 234 typedef enum CLUSTER_RESOURCE_CREATE_FLAGS { | |
| 235 CLUSTER_RESOURCE_DEFAULT_MONITOR = 0,CLUSTER_RESOURCE_SEPARATE_MONITOR = 1,CLUSTER_RESOURCE_VALID_FLAGS = CLUSTER_RESOURCE_SEPARATE_MONITOR | |
| 236 } CLUSTER_RESOURCE_CREATE_FLAGS; | |
| 237 #endif | |
| 238 | |
| 239 HRESOURCE WINAPI CreateClusterResource(HGROUP hGroup,LPCWSTR lpszResourceName,LPCWSTR lpszResourceType,DWORD dwFlags); | |
| 240 HRESOURCE WINAPI OpenClusterResource(HCLUSTER hCluster,LPCWSTR lpszResourceName); | |
| 241 WINBOOL WINAPI CloseClusterResource(HRESOURCE hResource); | |
| 242 HCLUSTER WINAPI GetClusterFromResource(HRESOURCE hResource); | |
| 243 DWORD WINAPI DeleteClusterResource(HRESOURCE hResource); | |
| 244 CLUSTER_RESOURCE_STATE WINAPI GetClusterResourceState(HRESOURCE hResource,LPWSTR lpszNodeName,LPDWORD lpcchNodeName,LPWSTR lpszGroupName,LPDWORD lpcchGroupName); | |
| 245 DWORD WINAPI SetClusterResourceName(HRESOURCE hResource,LPCWSTR lpszResourceName); | |
| 246 DWORD WINAPI FailClusterResource(HRESOURCE hResource); | |
| 247 DWORD WINAPI OnlineClusterResource(HRESOURCE hResource); | |
| 248 DWORD WINAPI OfflineClusterResource(HRESOURCE hResource); | |
| 249 DWORD WINAPI ChangeClusterResourceGroup(HRESOURCE hResource,HGROUP hGroup); | |
| 250 DWORD WINAPI AddClusterResourceNode(HRESOURCE hResource,HNODE hNode); | |
| 251 DWORD WINAPI RemoveClusterResourceNode(HRESOURCE hResource,HNODE hNode); | |
| 252 DWORD WINAPI AddClusterResourceDependency(HRESOURCE hResource,HRESOURCE hDependsOn); | |
| 253 DWORD WINAPI RemoveClusterResourceDependency(HRESOURCE hResource,HRESOURCE hDependsOn); | |
| 254 WINBOOL WINAPI CanResourceBeDependent(HRESOURCE hResource,HRESOURCE hResourceDependent); | |
| 255 DWORD WINAPI ClusterResourceControl(HRESOURCE hResource,HNODE hHostNode,DWORD dwControlCode,LPVOID lpInBuffer,DWORD cbInBufferSize,LPVOID lpOutBuffer,DWORD cbOutBufferSize,LPDWORD lpBytesReturned); | |
| 256 DWORD WINAPI ClusterResourceTypeControl(HCLUSTER hCluster,LPCWSTR lpszResourceTypeName,HNODE hHostNode,DWORD dwControlCode,LPVOID lpInBuffer,DWORD nInBufferSize,LPVOID lpOutBuffer,DWORD nOutBufferSize,LPDWORD lpBytesReturned); | |
| 257 DWORD WINAPI ClusterGroupControl(HGROUP hGroup,HNODE hHostNode,DWORD dwControlCode,LPVOID lpInBuffer,DWORD nInBufferSize,LPVOID lpOutBuffer,DWORD nOutBufferSize,LPDWORD lpBytesReturned); | |
| 258 DWORD WINAPI ClusterNodeControl(HNODE hNode,HNODE hHostNode,DWORD dwControlCode,LPVOID lpInBuffer,DWORD nInBufferSize,LPVOID lpOutBuffer,DWORD nOutBufferSize,LPDWORD lpBytesReturned); | |
| 259 WINBOOL WINAPI GetClusterResourceNetworkName(HRESOURCE hResource,LPWSTR lpBuffer,LPDWORD nSize); | |
| 260 | |
| 261 #ifndef _CLUSTER_API_TYPES_ | |
| 262 typedef enum CLUSTER_PROPERTY_TYPE { | |
| 263 CLUSPROP_TYPE_UNKNOWN = -1,CLUSPROP_TYPE_ENDMARK = 0,CLUSPROP_TYPE_LIST_VALUE,CLUSPROP_TYPE_RESCLASS,CLUSPROP_TYPE_RESERVED1,CLUSPROP_TYPE_NAME, | |
| 264 CLUSPROP_TYPE_SIGNATURE,CLUSPROP_TYPE_SCSI_ADDRESS,CLUSPROP_TYPE_DISK_NUMBER,CLUSPROP_TYPE_PARTITION_INFO,CLUSPROP_TYPE_FTSET_INFO, | |
| 265 CLUSPROP_TYPE_DISK_SERIALNUMBER,CLUSPROP_TYPE_USER=32768 | |
| 266 } CLUSTER_PROPERTY_TYPE; | |
| 267 | |
| 268 typedef enum CLUSTER_PROPERTY_FORMAT { | |
| 269 CLUSPROP_FORMAT_UNKNOWN = 0,CLUSPROP_FORMAT_BINARY,CLUSPROP_FORMAT_DWORD,CLUSPROP_FORMAT_SZ,CLUSPROP_FORMAT_EXPAND_SZ,CLUSPROP_FORMAT_MULTI_SZ, | |
| 270 CLUSPROP_FORMAT_ULARGE_INTEGER,CLUSPROP_FORMAT_LONG,CLUSPROP_FORMAT_EXPANDED_SZ,CLUSPROP_FORMAT_SECURITY_DESCRIPTOR,CLUSPROP_FORMAT_LARGE_INTEGER, | |
| 271 CLUSPROP_FORMAT_WORD,CLUSPROP_FORMAT_USER=32768 | |
| 272 } CLUSTER_PROPERTY_FORMAT; | |
| 273 #endif | |
| 274 | |
| 275 #define CLUSPROP_SYNTAX_VALUE(type,format) ((DWORD) ((type << 16) | format)) | |
| 276 | |
| 277 #ifndef _CLUSTER_API_TYPES_ | |
| 278 typedef enum CLUSTER_PROPERTY_SYNTAX { | |
| 279 CLUSPROP_SYNTAX_ENDMARK = CLUSPROP_SYNTAX_VALUE(CLUSPROP_TYPE_ENDMARK,CLUSPROP_FORMAT_UNKNOWN), | |
| 280 CLUSPROP_SYNTAX_NAME = CLUSPROP_SYNTAX_VALUE(CLUSPROP_TYPE_NAME,CLUSPROP_FORMAT_SZ), | |
| 281 CLUSPROP_SYNTAX_RESCLASS = CLUSPROP_SYNTAX_VALUE(CLUSPROP_TYPE_RESCLASS,CLUSPROP_FORMAT_DWORD), | |
| 282 CLUSPROP_SYNTAX_LIST_VALUE_SZ = CLUSPROP_SYNTAX_VALUE(CLUSPROP_TYPE_LIST_VALUE,CLUSPROP_FORMAT_SZ), | |
| 283 CLUSPROP_SYNTAX_LIST_VALUE_EXPAND_SZ = CLUSPROP_SYNTAX_VALUE(CLUSPROP_TYPE_LIST_VALUE,CLUSPROP_FORMAT_EXPAND_SZ), | |
| 284 CLUSPROP_SYNTAX_LIST_VALUE_DWORD = CLUSPROP_SYNTAX_VALUE(CLUSPROP_TYPE_LIST_VALUE,CLUSPROP_FORMAT_DWORD), | |
| 285 CLUSPROP_SYNTAX_LIST_VALUE_BINARY = CLUSPROP_SYNTAX_VALUE(CLUSPROP_TYPE_LIST_VALUE,CLUSPROP_FORMAT_BINARY), | |
| 286 CLUSPROP_SYNTAX_LIST_VALUE_MULTI_SZ = CLUSPROP_SYNTAX_VALUE(CLUSPROP_TYPE_LIST_VALUE,CLUSPROP_FORMAT_MULTI_SZ), | |
| 287 CLUSPROP_SYNTAX_LIST_VALUE_LONG = CLUSPROP_SYNTAX_VALUE(CLUSPROP_TYPE_LIST_VALUE,CLUSPROP_FORMAT_LONG), | |
| 288 CLUSPROP_SYNTAX_LIST_VALUE_EXPANDED_SZ = CLUSPROP_SYNTAX_VALUE(CLUSPROP_TYPE_LIST_VALUE,CLUSPROP_FORMAT_EXPANDED_SZ), | |
| 289 CLUSPROP_SYNTAX_LIST_VALUE_SECURITY_DESCRIPTOR = CLUSPROP_SYNTAX_VALUE(CLUSPROP_TYPE_LIST_VALUE,CLUSPROP_FORMAT_SECURITY_DESCRIPTOR), | |
| 290 CLUSPROP_SYNTAX_LIST_VALUE_LARGE_INTEGER = CLUSPROP_SYNTAX_VALUE(CLUSPROP_TYPE_LIST_VALUE,CLUSPROP_FORMAT_LARGE_INTEGER), | |
| 291 CLUSPROP_SYNTAX_LIST_VALUE_ULARGE_INTEGER = CLUSPROP_SYNTAX_VALUE(CLUSPROP_TYPE_LIST_VALUE,CLUSPROP_FORMAT_ULARGE_INTEGER), | |
| 292 CLUSPROP_SYNTAX_DISK_SIGNATURE = CLUSPROP_SYNTAX_VALUE(CLUSPROP_TYPE_SIGNATURE,CLUSPROP_FORMAT_DWORD), | |
| 293 CLUSPROP_SYNTAX_SCSI_ADDRESS = CLUSPROP_SYNTAX_VALUE(CLUSPROP_TYPE_SCSI_ADDRESS,CLUSPROP_FORMAT_DWORD), | |
| 294 CLUSPROP_SYNTAX_DISK_NUMBER = CLUSPROP_SYNTAX_VALUE(CLUSPROP_TYPE_DISK_NUMBER,CLUSPROP_FORMAT_DWORD), | |
| 295 CLUSPROP_SYNTAX_PARTITION_INFO = CLUSPROP_SYNTAX_VALUE(CLUSPROP_TYPE_PARTITION_INFO,CLUSPROP_FORMAT_BINARY), | |
| 296 CLUSPROP_SYNTAX_FTSET_INFO = CLUSPROP_SYNTAX_VALUE(CLUSPROP_TYPE_FTSET_INFO,CLUSPROP_FORMAT_BINARY), | |
| 297 CLUSPROP_SYNTAX_DISK_SERIALNUMBER = CLUSPROP_SYNTAX_VALUE(CLUSPROP_TYPE_DISK_SERIALNUMBER,CLUSPROP_FORMAT_SZ) | |
| 298 } CLUSTER_PROPERTY_SYNTAX; | |
| 299 #endif | |
| 300 | |
| 301 #define CLUS_ACCESS_ANY 0 | |
| 302 #define CLUS_ACCESS_READ 0x01 | |
| 303 #define CLUS_ACCESS_WRITE 0x02 | |
| 304 | |
| 305 #define CLUS_NO_MODIFY 0 | |
| 306 #define CLUS_MODIFY 0x01 | |
| 307 | |
| 308 #define CLUS_NOT_GLOBAL 0 | |
| 309 #define CLUS_GLOBAL 0x01 | |
| 310 | |
| 311 #ifndef _CLUSTER_API_TYPES_ | |
| 312 typedef enum CLUSTER_CONTROL_OBJECT { | |
| 313 CLUS_OBJECT_INVALID=0,CLUS_OBJECT_RESOURCE,CLUS_OBJECT_RESOURCE_TYPE,CLUS_OBJECT_GROUP,CLUS_OBJECT_NODE,CLUS_OBJECT_NETWORK, | |
| 314 CLUS_OBJECT_NETINTERFACE,CLUS_OBJECT_CLUSTER,CLUS_OBJECT_USER=128 | |
| 315 } CLUSTER_CONTROL_OBJECT; | |
| 316 #endif | |
| 317 | |
| 318 #define CLUSCTL_ACCESS_SHIFT 0 | |
| 319 #define CLUSCTL_FUNCTION_SHIFT 2 | |
| 320 #define CLCTL_INTERNAL_SHIFT 20 | |
| 321 #define CLCTL_USER_SHIFT 21 | |
| 322 #define CLCTL_MODIFY_SHIFT 22 | |
| 323 #define CLCTL_GLOBAL_SHIFT 23 | |
| 324 #define CLUSCTL_OBJECT_SHIFT 24 | |
| 325 | |
| 326 #define CLCTL_INTERNAL_MASK (1<<CLCTL_INTERNAL_SHIFT) | |
| 327 #define CLCTL_USER_MASK (1<<CLCTL_USER_SHIFT) | |
| 328 #define CLCTL_MODIFY_MASK (1<<CLCTL_MODIFY_SHIFT) | |
| 329 #define CLCTL_GLOBAL_MASK (1<<CLCTL_GLOBAL_SHIFT) | |
| 330 #define CLUSCTL_CONTROL_CODE_MASK 0x3FFFFF | |
| 331 #define CLUSCTL_OBJECT_MASK 0xFF | |
| 332 #define CLUSCTL_ACCESS_MODE_MASK 0x03 | |
| 333 | |
| 334 #define CLCTL_CLUSTER_BASE 0 | |
| 335 #define CLCTL_USER_BASE (1<<CLCTL_USER_SHIFT) | |
| 336 | |
| 337 #define CLCTL_EXTERNAL_CODE(Function,Access,Modify) (((Access) << CLUSCTL_ACCESS_SHIFT) | ((CLCTL_CLUSTER_BASE + Function) << CLUSCTL_FUNCTION_SHIFT) | ((Modify) << CLCTL_MODIFY_SHIFT)) | |
| 338 #define CLCTL_INTERNAL_CODE(Function,Access,Modify) (((Access) << CLUSCTL_ACCESS_SHIFT) | CLCTL_INTERNAL_MASK | ((CLCTL_CLUSTER_BASE + Function) << CLUSCTL_FUNCTION_SHIFT) | ((Modify) << CLCTL_MODIFY_SHIFT)) | |
| 339 | |
| 340 #ifndef _CLUSTER_API_TYPES_ | |
| 341 typedef enum CLCTL_CODES { | |
| 342 CLCTL_UNKNOWN = CLCTL_EXTERNAL_CODE(0,CLUS_ACCESS_ANY,CLUS_NO_MODIFY), | |
| 343 CLCTL_GET_CHARACTERISTICS = CLCTL_EXTERNAL_CODE(1,CLUS_ACCESS_READ,CLUS_NO_MODIFY), | |
| 344 CLCTL_GET_FLAGS = CLCTL_EXTERNAL_CODE(2,CLUS_ACCESS_READ,CLUS_NO_MODIFY), | |
| 345 CLCTL_GET_CLASS_INFO = CLCTL_EXTERNAL_CODE(3,CLUS_ACCESS_READ,CLUS_NO_MODIFY), | |
| 346 CLCTL_GET_REQUIRED_DEPENDENCIES = CLCTL_EXTERNAL_CODE(4,CLUS_ACCESS_READ, | |
| 347 CLUS_NO_MODIFY),CLCTL_GET_ARB_TIMEOUT = CLCTL_EXTERNAL_CODE(5,CLUS_ACCESS_READ, | |
| 348 CLUS_NO_MODIFY),CLCTL_GET_NAME = CLCTL_EXTERNAL_CODE(10,CLUS_ACCESS_READ, | |
| 349 CLUS_NO_MODIFY),CLCTL_GET_RESOURCE_TYPE = CLCTL_EXTERNAL_CODE(11, | |
| 350 CLUS_ACCESS_READ,CLUS_NO_MODIFY),CLCTL_GET_NODE = CLCTL_EXTERNAL_CODE(12,CLUS_ACCESS_READ,CLUS_NO_MODIFY), | |
| 351 CLCTL_GET_NETWORK = CLCTL_EXTERNAL_CODE(13,CLUS_ACCESS_READ,CLUS_NO_MODIFY), | |
| 352 CLCTL_GET_ID = CLCTL_EXTERNAL_CODE(14,CLUS_ACCESS_READ,CLUS_NO_MODIFY), | |
| 353 CLCTL_GET_FQDN = CLCTL_EXTERNAL_CODE(15,CLUS_ACCESS_READ,CLUS_NO_MODIFY), | |
| 354 CLCTL_GET_CLUSTER_SERVICE_ACCOUNT_NAME = CLCTL_EXTERNAL_CODE(16,CLUS_ACCESS_READ,CLUS_NO_MODIFY), | |
| 355 CLCTL_ENUM_COMMON_PROPERTIES = CLCTL_EXTERNAL_CODE(20,CLUS_ACCESS_READ,CLUS_NO_MODIFY), | |
| 356 CLCTL_GET_RO_COMMON_PROPERTIES = CLCTL_EXTERNAL_CODE(21,CLUS_ACCESS_READ,CLUS_NO_MODIFY), | |
| 357 CLCTL_GET_COMMON_PROPERTIES = CLCTL_EXTERNAL_CODE(22,CLUS_ACCESS_READ,CLUS_NO_MODIFY), | |
| 358 CLCTL_SET_COMMON_PROPERTIES = CLCTL_EXTERNAL_CODE(23,CLUS_ACCESS_WRITE,CLUS_MODIFY), | |
| 359 CLCTL_VALIDATE_COMMON_PROPERTIES = CLCTL_EXTERNAL_CODE(24,CLUS_ACCESS_READ,CLUS_NO_MODIFY), | |
| 360 CLCTL_GET_COMMON_PROPERTY_FMTS = CLCTL_EXTERNAL_CODE(25,CLUS_ACCESS_READ,CLUS_NO_MODIFY), | |
| 361 CLCTL_GET_COMMON_RESOURCE_PROPERTY_FMTS = CLCTL_EXTERNAL_CODE(26,CLUS_ACCESS_READ,CLUS_NO_MODIFY), | |
| 362 CLCTL_ENUM_PRIVATE_PROPERTIES = CLCTL_EXTERNAL_CODE(30,CLUS_ACCESS_READ,CLUS_NO_MODIFY), | |
| 363 CLCTL_GET_RO_PRIVATE_PROPERTIES = CLCTL_EXTERNAL_CODE(31,CLUS_ACCESS_READ,CLUS_NO_MODIFY), | |
| 364 CLCTL_GET_PRIVATE_PROPERTIES = CLCTL_EXTERNAL_CODE(32,CLUS_ACCESS_READ,CLUS_NO_MODIFY), | |
| 365 CLCTL_SET_PRIVATE_PROPERTIES = CLCTL_EXTERNAL_CODE(33,CLUS_ACCESS_WRITE,CLUS_MODIFY), | |
| 366 CLCTL_VALIDATE_PRIVATE_PROPERTIES = CLCTL_EXTERNAL_CODE(34,CLUS_ACCESS_READ,CLUS_NO_MODIFY), | |
| 367 CLCTL_GET_PRIVATE_PROPERTY_FMTS = CLCTL_EXTERNAL_CODE(35,CLUS_ACCESS_READ,CLUS_NO_MODIFY), | |
| 368 CLCTL_GET_PRIVATE_RESOURCE_PROPERTY_FMTS= CLCTL_EXTERNAL_CODE(36,CLUS_ACCESS_READ,CLUS_NO_MODIFY), | |
| 369 CLCTL_ADD_REGISTRY_CHECKPOINT = CLCTL_EXTERNAL_CODE(40,CLUS_ACCESS_WRITE,CLUS_MODIFY), | |
| 370 CLCTL_DELETE_REGISTRY_CHECKPOINT = CLCTL_EXTERNAL_CODE(41,CLUS_ACCESS_WRITE,CLUS_MODIFY), | |
| 371 CLCTL_GET_REGISTRY_CHECKPOINTS = CLCTL_EXTERNAL_CODE(42,CLUS_ACCESS_READ,CLUS_NO_MODIFY), | |
| 372 CLCTL_ADD_CRYPTO_CHECKPOINT = CLCTL_EXTERNAL_CODE(43,CLUS_ACCESS_WRITE,CLUS_MODIFY), | |
| 373 CLCTL_DELETE_CRYPTO_CHECKPOINT = CLCTL_EXTERNAL_CODE(44,CLUS_ACCESS_WRITE,CLUS_MODIFY), | |
| 374 CLCTL_GET_CRYPTO_CHECKPOINTS = CLCTL_EXTERNAL_CODE(45,CLUS_ACCESS_READ,CLUS_NO_MODIFY), | |
| 375 CLCTL_RESOURCE_UPGRADE_DLL = CLCTL_EXTERNAL_CODE(46,CLUS_ACCESS_WRITE,CLUS_MODIFY), | |
| 376 CLCTL_ADD_REGISTRY_CHECKPOINT_64BIT = CLCTL_EXTERNAL_CODE(47,CLUS_ACCESS_WRITE,CLUS_MODIFY), | |
| 377 CLCTL_ADD_REGISTRY_CHECKPOINT_32BIT = CLCTL_EXTERNAL_CODE(48,CLUS_ACCESS_WRITE,CLUS_MODIFY), | |
| 378 CLCTL_GET_LOADBAL_PROCESS_LIST = CLCTL_EXTERNAL_CODE(50,CLUS_ACCESS_READ,CLUS_NO_MODIFY), | |
| 379 CLCTL_GET_NETWORK_NAME = CLCTL_EXTERNAL_CODE(90,CLUS_ACCESS_READ,CLUS_NO_MODIFY), | |
| 380 CLCTL_NETNAME_GET_VIRTUAL_SERVER_TOKEN = CLCTL_EXTERNAL_CODE(91,CLUS_ACCESS_READ, | |
| 381 CLUS_NO_MODIFY),CLCTL_NETNAME_REGISTER_DNS_RECORDS = CLCTL_EXTERNAL_CODE(92,CLUS_ACCESS_WRITE,CLUS_NO_MODIFY), | |
| 382 CLCTL_STORAGE_GET_DISK_INFO = CLCTL_EXTERNAL_CODE(100,CLUS_ACCESS_READ,CLUS_NO_MODIFY), | |
| 383 CLCTL_STORAGE_GET_AVAILABLE_DISKS = CLCTL_EXTERNAL_CODE(101,CLUS_ACCESS_READ,CLUS_NO_MODIFY), | |
| 384 CLCTL_STORAGE_IS_PATH_VALID = CLCTL_EXTERNAL_CODE(102,CLUS_ACCESS_READ,CLUS_NO_MODIFY), | |
| 385 CLCTL_STORAGE_GET_ALL_AVAILABLE_DISKS = (CLCTL_EXTERNAL_CODE(103,CLUS_ACCESS_READ,CLUS_NO_MODIFY) | CLCTL_GLOBAL_MASK), | |
| 386 CLCTL_QUERY_DELETE = CLCTL_EXTERNAL_CODE(110,CLUS_ACCESS_READ,CLUS_NO_MODIFY), | |
| 387 CLCTL_QUERY_MAINTENANCE_MODE = CLCTL_EXTERNAL_CODE(120,CLUS_ACCESS_READ,CLUS_NO_MODIFY), | |
| 388 CLCTL_SET_MAINTENANCE_MODE = CLCTL_EXTERNAL_CODE(121,CLUS_ACCESS_WRITE, | |
| 389 CLUS_MODIFY),CLCTL_DELETE = CLCTL_INTERNAL_CODE(1,CLUS_ACCESS_WRITE,CLUS_MODIFY), | |
| 390 CLCTL_INSTALL_NODE = CLCTL_INTERNAL_CODE(2,CLUS_ACCESS_WRITE,CLUS_MODIFY), | |
| 391 CLCTL_EVICT_NODE = CLCTL_INTERNAL_CODE(3,CLUS_ACCESS_WRITE,CLUS_MODIFY), | |
| 392 CLCTL_ADD_DEPENDENCY = CLCTL_INTERNAL_CODE(4,CLUS_ACCESS_WRITE,CLUS_MODIFY), | |
| 393 CLCTL_REMOVE_DEPENDENCY = CLCTL_INTERNAL_CODE(5,CLUS_ACCESS_WRITE,CLUS_MODIFY), | |
| 394 CLCTL_ADD_OWNER = CLCTL_INTERNAL_CODE(6,CLUS_ACCESS_WRITE,CLUS_MODIFY), | |
| 395 CLCTL_REMOVE_OWNER = CLCTL_INTERNAL_CODE(7,CLUS_ACCESS_WRITE, | |
| 396 CLUS_MODIFY),CLCTL_SET_NAME = CLCTL_INTERNAL_CODE(9,CLUS_ACCESS_WRITE,CLUS_MODIFY), | |
| 397 CLCTL_CLUSTER_NAME_CHANGED = CLCTL_INTERNAL_CODE(10,CLUS_ACCESS_WRITE,CLUS_MODIFY), | |
| 398 CLCTL_CLUSTER_VERSION_CHANGED = CLCTL_INTERNAL_CODE(11,CLUS_ACCESS_WRITE,CLUS_MODIFY), | |
| 399 CLCTL_FIXUP_ON_UPGRADE = CLCTL_INTERNAL_CODE(12,CLUS_ACCESS_WRITE,CLUS_MODIFY), | |
| 400 CLCTL_STARTING_PHASE1 = CLCTL_INTERNAL_CODE(13,CLUS_ACCESS_WRITE,CLUS_MODIFY), | |
| 401 CLCTL_STARTING_PHASE2 = CLCTL_INTERNAL_CODE(14,CLUS_ACCESS_WRITE,CLUS_MODIFY), | |
| 402 CLCTL_HOLD_IO = CLCTL_INTERNAL_CODE(15,CLUS_ACCESS_WRITE,CLUS_MODIFY), | |
| 403 CLCTL_RESUME_IO = CLCTL_INTERNAL_CODE(16,CLUS_ACCESS_WRITE,CLUS_MODIFY), | |
| 404 CLCTL_FORCE_QUORUM = CLCTL_INTERNAL_CODE(17,CLUS_ACCESS_WRITE,CLUS_MODIFY), | |
| 405 CLCTL_INITIALIZE = CLCTL_INTERNAL_CODE(18,CLUS_ACCESS_WRITE,CLUS_MODIFY), | |
| 406 CLCTL_STATE_CHANGE_REASON = CLCTL_INTERNAL_CODE(19,CLUS_ACCESS_WRITE,CLUS_MODIFY) | |
| 407 } CLCTL_CODES; | |
| 408 #endif | |
| 409 | |
| 410 #define CLUSCTL_RESOURCE_CODE(Function) (((CLUS_OBJECT_RESOURCE << CLUSCTL_OBJECT_SHIFT) | Function)) | |
| 411 #define CLUSCTL_RESOURCE_TYPE_CODE(Function) (((CLUS_OBJECT_RESOURCE_TYPE << CLUSCTL_OBJECT_SHIFT) | Function)) | |
| 412 #define CLUSCTL_GROUP_CODE(Function) (((CLUS_OBJECT_GROUP << CLUSCTL_OBJECT_SHIFT) | Function)) | |
| 413 #define CLUSCTL_NODE_CODE(Function) (((CLUS_OBJECT_NODE << CLUSCTL_OBJECT_SHIFT) | Function)) | |
| 414 #define CLUSCTL_NETWORK_CODE(Function) (((CLUS_OBJECT_NETWORK << CLUSCTL_OBJECT_SHIFT) | Function)) | |
| 415 #define CLUSCTL_NETINTERFACE_CODE(Function) (((CLUS_OBJECT_NETINTERFACE << CLUSCTL_OBJECT_SHIFT) | Function)) | |
| 416 #define CLUSCTL_CLUSTER_CODE(Function) (((CLUS_OBJECT_CLUSTER << CLUSCTL_OBJECT_SHIFT) | Function)) | |
| 417 #define CLUSCTL_USER_CODE(Function,Object) (((Object) << CLUSCTL_OBJECT_SHIFT) | ((CLCTL_USER_BASE + Function) << CLUSCTL_FUNCTION_SHIFT)) | |
| 418 #define CLUSCTL_GET_CONTROL_FUNCTION(ControlCode) ((ControlCode >> CLUSCTL_ACCESS_SHIFT) & CLUSCTL_CONTROL_CODE_MASK) | |
| 419 #define CLUSCTL_GET_ACCESS_MODE(ControlCode) ((ControlCode >> CLUSCTL_ACCESS_SHIFT) & CLUSCTL_ACCESS_MODE_MASK) | |
| 420 #define CLUSCTL_GET_CONTROL_OBJECT(ControlCode) ((ControlCode >> CLUSCTL_OBJECT_SHIFT) & CLUSCTL_OBJECT_MASK) | |
| 421 | |
| 422 #ifndef _CLUSTER_API_TYPES_ | |
| 423 typedef enum CLUSCTL_RESOURCE_CODES { | |
| 424 CLUSCTL_RESOURCE_UNKNOWN = CLUSCTL_RESOURCE_CODE(CLCTL_UNKNOWN), | |
| 425 CLUSCTL_RESOURCE_GET_CHARACTERISTICS = CLUSCTL_RESOURCE_CODE(CLCTL_GET_CHARACTERISTICS), | |
| 426 CLUSCTL_RESOURCE_GET_FLAGS = CLUSCTL_RESOURCE_CODE(CLCTL_GET_FLAGS), | |
| 427 CLUSCTL_RESOURCE_GET_CLASS_INFO = CLUSCTL_RESOURCE_CODE(CLCTL_GET_CLASS_INFO), | |
| 428 CLUSCTL_RESOURCE_GET_REQUIRED_DEPENDENCIES = CLUSCTL_RESOURCE_CODE(CLCTL_GET_REQUIRED_DEPENDENCIES), | |
| 429 CLUSCTL_RESOURCE_GET_NAME = CLUSCTL_RESOURCE_CODE(CLCTL_GET_NAME), | |
| 430 CLUSCTL_RESOURCE_GET_ID = CLUSCTL_RESOURCE_CODE(CLCTL_GET_ID), | |
| 431 CLUSCTL_RESOURCE_GET_RESOURCE_TYPE = CLUSCTL_RESOURCE_CODE(CLCTL_GET_RESOURCE_TYPE), | |
| 432 CLUSCTL_RESOURCE_ENUM_COMMON_PROPERTIES = CLUSCTL_RESOURCE_CODE(CLCTL_ENUM_COMMON_PROPERTIES), | |
| 433 CLUSCTL_RESOURCE_GET_RO_COMMON_PROPERTIES = CLUSCTL_RESOURCE_CODE(CLCTL_GET_RO_COMMON_PROPERTIES), | |
| 434 CLUSCTL_RESOURCE_GET_COMMON_PROPERTIES = CLUSCTL_RESOURCE_CODE(CLCTL_GET_COMMON_PROPERTIES), | |
| 435 CLUSCTL_RESOURCE_SET_COMMON_PROPERTIES = CLUSCTL_RESOURCE_CODE(CLCTL_SET_COMMON_PROPERTIES), | |
| 436 CLUSCTL_RESOURCE_VALIDATE_COMMON_PROPERTIES = CLUSCTL_RESOURCE_CODE(CLCTL_VALIDATE_COMMON_PROPERTIES), | |
| 437 CLUSCTL_RESOURCE_GET_COMMON_PROPERTY_FMTS = CLUSCTL_RESOURCE_CODE(CLCTL_GET_COMMON_PROPERTY_FMTS), | |
| 438 CLUSCTL_RESOURCE_ENUM_PRIVATE_PROPERTIES = CLUSCTL_RESOURCE_CODE(CLCTL_ENUM_PRIVATE_PROPERTIES), | |
| 439 CLUSCTL_RESOURCE_GET_RO_PRIVATE_PROPERTIES = CLUSCTL_RESOURCE_CODE(CLCTL_GET_RO_PRIVATE_PROPERTIES), | |
| 440 CLUSCTL_RESOURCE_GET_PRIVATE_PROPERTIES = CLUSCTL_RESOURCE_CODE(CLCTL_GET_PRIVATE_PROPERTIES), | |
| 441 CLUSCTL_RESOURCE_SET_PRIVATE_PROPERTIES = CLUSCTL_RESOURCE_CODE(CLCTL_SET_PRIVATE_PROPERTIES), | |
| 442 CLUSCTL_RESOURCE_VALIDATE_PRIVATE_PROPERTIES = CLUSCTL_RESOURCE_CODE(CLCTL_VALIDATE_PRIVATE_PROPERTIES), | |
| 443 CLUSCTL_RESOURCE_GET_PRIVATE_PROPERTY_FMTS = CLUSCTL_RESOURCE_CODE(CLCTL_GET_PRIVATE_PROPERTY_FMTS), | |
| 444 CLUSCTL_RESOURCE_ADD_REGISTRY_CHECKPOINT = CLUSCTL_RESOURCE_CODE(CLCTL_ADD_REGISTRY_CHECKPOINT), | |
| 445 CLUSCTL_RESOURCE_DELETE_REGISTRY_CHECKPOINT = CLUSCTL_RESOURCE_CODE(CLCTL_DELETE_REGISTRY_CHECKPOINT), | |
| 446 CLUSCTL_RESOURCE_GET_REGISTRY_CHECKPOINTS = CLUSCTL_RESOURCE_CODE(CLCTL_GET_REGISTRY_CHECKPOINTS), | |
| 447 CLUSCTL_RESOURCE_ADD_CRYPTO_CHECKPOINT = CLUSCTL_RESOURCE_CODE(CLCTL_ADD_CRYPTO_CHECKPOINT), | |
| 448 CLUSCTL_RESOURCE_DELETE_CRYPTO_CHECKPOINT = CLUSCTL_RESOURCE_CODE(CLCTL_DELETE_CRYPTO_CHECKPOINT), | |
| 449 CLUSCTL_RESOURCE_GET_CRYPTO_CHECKPOINTS = CLUSCTL_RESOURCE_CODE(CLCTL_GET_CRYPTO_CHECKPOINTS), | |
| 450 CLUSCTL_RESOURCE_GET_LOADBAL_PROCESS_LIST = CLUSCTL_RESOURCE_CODE(CLCTL_GET_LOADBAL_PROCESS_LIST), | |
| 451 CLUSCTL_RESOURCE_GET_NETWORK_NAME = CLUSCTL_RESOURCE_CODE(CLCTL_GET_NETWORK_NAME), | |
| 452 CLUSCTL_RESOURCE_NETNAME_GET_VIRTUAL_SERVER_TOKEN = CLUSCTL_RESOURCE_CODE(CLCTL_NETNAME_GET_VIRTUAL_SERVER_TOKEN), | |
| 453 CLUSCTL_RESOURCE_NETNAME_REGISTER_DNS_RECORDS = CLUSCTL_RESOURCE_CODE(CLCTL_NETNAME_REGISTER_DNS_RECORDS), | |
| 454 CLUSCTL_RESOURCE_STORAGE_GET_DISK_INFO = CLUSCTL_RESOURCE_CODE(CLCTL_STORAGE_GET_DISK_INFO), | |
| 455 CLUSCTL_RESOURCE_STORAGE_IS_PATH_VALID = CLUSCTL_RESOURCE_CODE(CLCTL_STORAGE_IS_PATH_VALID), | |
| 456 CLUSCTL_RESOURCE_QUERY_DELETE = CLUSCTL_RESOURCE_CODE(CLCTL_QUERY_DELETE), | |
| 457 CLUSCTL_RESOURCE_UPGRADE_DLL = CLUSCTL_RESOURCE_CODE(CLCTL_RESOURCE_UPGRADE_DLL), | |
| 458 CLUSCTL_RESOURCE_ADD_REGISTRY_CHECKPOINT_64BIT = CLUSCTL_RESOURCE_CODE(CLCTL_ADD_REGISTRY_CHECKPOINT_64BIT), | |
| 459 CLUSCTL_RESOURCE_ADD_REGISTRY_CHECKPOINT_32BIT = CLUSCTL_RESOURCE_CODE(CLCTL_ADD_REGISTRY_CHECKPOINT_32BIT), | |
| 460 CLUSCTL_RESOURCE_QUERY_MAINTENANCE_MODE = CLUSCTL_RESOURCE_CODE(CLCTL_QUERY_MAINTENANCE_MODE), | |
| 461 CLUSCTL_RESOURCE_SET_MAINTENANCE_MODE = CLUSCTL_RESOURCE_CODE(CLCTL_SET_MAINTENANCE_MODE), | |
| 462 CLUSCTL_RESOURCE_DELETE = CLUSCTL_RESOURCE_CODE(CLCTL_DELETE), | |
| 463 CLUSCTL_RESOURCE_INSTALL_NODE = CLUSCTL_RESOURCE_CODE(CLCTL_INSTALL_NODE), | |
| 464 CLUSCTL_RESOURCE_EVICT_NODE = CLUSCTL_RESOURCE_CODE(CLCTL_EVICT_NODE), | |
| 465 CLUSCTL_RESOURCE_ADD_DEPENDENCY = CLUSCTL_RESOURCE_CODE(CLCTL_ADD_DEPENDENCY), | |
| 466 CLUSCTL_RESOURCE_REMOVE_DEPENDENCY = CLUSCTL_RESOURCE_CODE(CLCTL_REMOVE_DEPENDENCY), | |
| 467 CLUSCTL_RESOURCE_ADD_OWNER = CLUSCTL_RESOURCE_CODE(CLCTL_ADD_OWNER), | |
| 468 CLUSCTL_RESOURCE_REMOVE_OWNER = CLUSCTL_RESOURCE_CODE(CLCTL_REMOVE_OWNER), | |
| 469 CLUSCTL_RESOURCE_SET_NAME = CLUSCTL_RESOURCE_CODE(CLCTL_SET_NAME), | |
| 470 CLUSCTL_RESOURCE_CLUSTER_NAME_CHANGED = CLUSCTL_RESOURCE_CODE(CLCTL_CLUSTER_NAME_CHANGED), | |
| 471 CLUSCTL_RESOURCE_CLUSTER_VERSION_CHANGED = CLUSCTL_RESOURCE_CODE(CLCTL_CLUSTER_VERSION_CHANGED), | |
| 472 CLUSCTL_RESOURCE_FORCE_QUORUM = CLUSCTL_RESOURCE_CODE(CLCTL_FORCE_QUORUM), | |
| 473 CLUSCTL_RESOURCE_INITIALIZE = CLUSCTL_RESOURCE_CODE(CLCTL_INITIALIZE), | |
| 474 CLUSCTL_RESOURCE_STATE_CHANGE_REASON = CLUSCTL_RESOURCE_CODE(CLCTL_STATE_CHANGE_REASON) | |
| 475 } CLUSCTL_RESOURCE_CODES; | |
| 476 | |
| 477 typedef enum CLUSCTL_RESOURCE_TYPE_CODES { | |
| 478 CLUSCTL_RESOURCE_TYPE_UNKNOWN = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_UNKNOWN), | |
| 479 CLUSCTL_RESOURCE_TYPE_GET_CHARACTERISTICS = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_GET_CHARACTERISTICS), | |
| 480 CLUSCTL_RESOURCE_TYPE_GET_FLAGS = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_GET_FLAGS), | |
| 481 CLUSCTL_RESOURCE_TYPE_GET_CLASS_INFO = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_GET_CLASS_INFO), | |
| 482 CLUSCTL_RESOURCE_TYPE_GET_REQUIRED_DEPENDENCIES = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_GET_REQUIRED_DEPENDENCIES), | |
| 483 CLUSCTL_RESOURCE_TYPE_GET_ARB_TIMEOUT = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_GET_ARB_TIMEOUT), | |
| 484 CLUSCTL_RESOURCE_TYPE_ENUM_COMMON_PROPERTIES = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_ENUM_COMMON_PROPERTIES), | |
| 485 CLUSCTL_RESOURCE_TYPE_GET_RO_COMMON_PROPERTIES = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_GET_RO_COMMON_PROPERTIES), | |
| 486 CLUSCTL_RESOURCE_TYPE_GET_COMMON_PROPERTIES = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_GET_COMMON_PROPERTIES), | |
| 487 CLUSCTL_RESOURCE_TYPE_VALIDATE_COMMON_PROPERTIES = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_VALIDATE_COMMON_PROPERTIES), | |
| 488 CLUSCTL_RESOURCE_TYPE_SET_COMMON_PROPERTIES = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_SET_COMMON_PROPERTIES), | |
| 489 CLUSCTL_RESOURCE_TYPE_GET_COMMON_PROPERTY_FMTS = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_GET_COMMON_PROPERTY_FMTS), | |
| 490 CLUSCTL_RESOURCE_TYPE_GET_COMMON_RESOURCE_PROPERTY_FMTS = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_GET_COMMON_RESOURCE_PROPERTY_FMTS), | |
| 491 CLUSCTL_RESOURCE_TYPE_ENUM_PRIVATE_PROPERTIES = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_ENUM_PRIVATE_PROPERTIES), | |
| 492 CLUSCTL_RESOURCE_TYPE_GET_RO_PRIVATE_PROPERTIES = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_GET_RO_PRIVATE_PROPERTIES), | |
| 493 CLUSCTL_RESOURCE_TYPE_GET_PRIVATE_PROPERTIES = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_GET_PRIVATE_PROPERTIES), | |
| 494 CLUSCTL_RESOURCE_TYPE_SET_PRIVATE_PROPERTIES = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_SET_PRIVATE_PROPERTIES), | |
| 495 CLUSCTL_RESOURCE_TYPE_VALIDATE_PRIVATE_PROPERTIES = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_VALIDATE_PRIVATE_PROPERTIES), | |
| 496 CLUSCTL_RESOURCE_TYPE_GET_PRIVATE_PROPERTY_FMTS = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_GET_PRIVATE_PROPERTY_FMTS), | |
| 497 CLUSCTL_RESOURCE_TYPE_GET_PRIVATE_RESOURCE_PROPERTY_FMTS = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_GET_PRIVATE_RESOURCE_PROPERTY_FMTS), | |
| 498 CLUSCTL_RESOURCE_TYPE_GET_REGISTRY_CHECKPOINTS = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_GET_REGISTRY_CHECKPOINTS), | |
| 499 CLUSCTL_RESOURCE_TYPE_GET_CRYPTO_CHECKPOINTS = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_GET_CRYPTO_CHECKPOINTS), | |
| 500 CLUSCTL_RESOURCE_TYPE_STORAGE_GET_AVAILABLE_DISKS = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_STORAGE_GET_AVAILABLE_DISKS), | |
| 501 CLUSCTL_RESOURCE_TYPE_QUERY_DELETE = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_QUERY_DELETE), | |
| 502 CLUSCTL_RESOURCE_TYPE_INSTALL_NODE = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_INSTALL_NODE), | |
| 503 CLUSCTL_RESOURCE_TYPE_EVICT_NODE = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_EVICT_NODE), | |
| 504 CLUSCTL_RESOURCE_TYPE_CLUSTER_VERSION_CHANGED = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_CLUSTER_VERSION_CHANGED), | |
| 505 CLUSCTL_RESOURCE_TYPE_FIXUP_ON_UPGRADE = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_FIXUP_ON_UPGRADE), | |
| 506 CLUSCTL_RESOURCE_TYPE_STARTING_PHASE1 = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_STARTING_PHASE1), | |
| 507 CLUSCTL_RESOURCE_TYPE_STARTING_PHASE2 = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_STARTING_PHASE2), | |
| 508 CLUSCTL_RESOURCE_TYPE_HOLD_IO = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_HOLD_IO), | |
| 509 CLUSCTL_RESOURCE_TYPE_RESUME_IO = CLUSCTL_RESOURCE_TYPE_CODE(CLCTL_RESUME_IO) | |
| 510 | |
| 511 } CLUSCTL_RESOURCE_TYPE_CODES; | |
| 512 | |
| 513 typedef enum CLUSCTL_GROUP_CODES { | |
| 514 CLUSCTL_GROUP_UNKNOWN = CLUSCTL_GROUP_CODE(CLCTL_UNKNOWN), | |
| 515 CLUSCTL_GROUP_GET_CHARACTERISTICS = CLUSCTL_GROUP_CODE(CLCTL_GET_CHARACTERISTICS), | |
| 516 CLUSCTL_GROUP_GET_FLAGS = CLUSCTL_GROUP_CODE(CLCTL_GET_FLAGS), | |
| 517 CLUSCTL_GROUP_GET_NAME = CLUSCTL_GROUP_CODE(CLCTL_GET_NAME), | |
| 518 CLUSCTL_GROUP_GET_ID = CLUSCTL_GROUP_CODE(CLCTL_GET_ID), | |
| 519 CLUSCTL_GROUP_ENUM_COMMON_PROPERTIES = CLUSCTL_GROUP_CODE(CLCTL_ENUM_COMMON_PROPERTIES), | |
| 520 CLUSCTL_GROUP_GET_RO_COMMON_PROPERTIES = CLUSCTL_GROUP_CODE(CLCTL_GET_RO_COMMON_PROPERTIES), | |
| 521 CLUSCTL_GROUP_GET_COMMON_PROPERTIES = CLUSCTL_GROUP_CODE(CLCTL_GET_COMMON_PROPERTIES), | |
| 522 CLUSCTL_GROUP_SET_COMMON_PROPERTIES = CLUSCTL_GROUP_CODE(CLCTL_SET_COMMON_PROPERTIES), | |
| 523 CLUSCTL_GROUP_VALIDATE_COMMON_PROPERTIES = CLUSCTL_GROUP_CODE(CLCTL_VALIDATE_COMMON_PROPERTIES), | |
| 524 CLUSCTL_GROUP_ENUM_PRIVATE_PROPERTIES = CLUSCTL_GROUP_CODE(CLCTL_ENUM_PRIVATE_PROPERTIES), | |
| 525 CLUSCTL_GROUP_GET_RO_PRIVATE_PROPERTIES = CLUSCTL_GROUP_CODE(CLCTL_GET_RO_PRIVATE_PROPERTIES), | |
| 526 CLUSCTL_GROUP_GET_PRIVATE_PROPERTIES = CLUSCTL_GROUP_CODE(CLCTL_GET_PRIVATE_PROPERTIES), | |
| 527 CLUSCTL_GROUP_SET_PRIVATE_PROPERTIES = CLUSCTL_GROUP_CODE(CLCTL_SET_PRIVATE_PROPERTIES), | |
| 528 CLUSCTL_GROUP_VALIDATE_PRIVATE_PROPERTIES = CLUSCTL_GROUP_CODE(CLCTL_VALIDATE_PRIVATE_PROPERTIES), | |
| 529 CLUSCTL_GROUP_QUERY_DELETE = CLUSCTL_GROUP_CODE(CLCTL_QUERY_DELETE), | |
| 530 CLUSCTL_GROUP_GET_COMMON_PROPERTY_FMTS = CLUSCTL_GROUP_CODE(CLCTL_GET_COMMON_PROPERTY_FMTS), | |
| 531 CLUSCTL_GROUP_GET_PRIVATE_PROPERTY_FMTS = CLUSCTL_GROUP_CODE(CLCTL_GET_PRIVATE_PROPERTY_FMTS) | |
| 532 } CLUSCTL_GROUP_CODES; | |
| 533 | |
| 534 typedef enum CLUSCTL_NODE_CODES { | |
| 535 CLUSCTL_NODE_UNKNOWN = CLUSCTL_NODE_CODE(CLCTL_UNKNOWN), | |
| 536 CLUSCTL_NODE_GET_CHARACTERISTICS = CLUSCTL_NODE_CODE(CLCTL_GET_CHARACTERISTICS), | |
| 537 CLUSCTL_NODE_GET_FLAGS = CLUSCTL_NODE_CODE(CLCTL_GET_FLAGS), | |
| 538 CLUSCTL_NODE_GET_NAME = CLUSCTL_NODE_CODE(CLCTL_GET_NAME), | |
| 539 CLUSCTL_NODE_GET_ID = CLUSCTL_NODE_CODE(CLCTL_GET_ID), | |
| 540 CLUSCTL_NODE_ENUM_COMMON_PROPERTIES = CLUSCTL_NODE_CODE(CLCTL_ENUM_COMMON_PROPERTIES), | |
| 541 CLUSCTL_NODE_GET_RO_COMMON_PROPERTIES = CLUSCTL_NODE_CODE(CLCTL_GET_RO_COMMON_PROPERTIES), | |
| 542 CLUSCTL_NODE_GET_COMMON_PROPERTIES = CLUSCTL_NODE_CODE(CLCTL_GET_COMMON_PROPERTIES), | |
| 543 CLUSCTL_NODE_SET_COMMON_PROPERTIES = CLUSCTL_NODE_CODE(CLCTL_SET_COMMON_PROPERTIES), | |
| 544 CLUSCTL_NODE_VALIDATE_COMMON_PROPERTIES = CLUSCTL_NODE_CODE(CLCTL_VALIDATE_COMMON_PROPERTIES), | |
| 545 CLUSCTL_NODE_ENUM_PRIVATE_PROPERTIES = CLUSCTL_NODE_CODE(CLCTL_ENUM_PRIVATE_PROPERTIES), | |
| 546 CLUSCTL_NODE_GET_RO_PRIVATE_PROPERTIES = CLUSCTL_NODE_CODE(CLCTL_GET_RO_PRIVATE_PROPERTIES), | |
| 547 CLUSCTL_NODE_GET_PRIVATE_PROPERTIES = CLUSCTL_NODE_CODE(CLCTL_GET_PRIVATE_PROPERTIES), | |
| 548 CLUSCTL_NODE_SET_PRIVATE_PROPERTIES = CLUSCTL_NODE_CODE(CLCTL_SET_PRIVATE_PROPERTIES), | |
| 549 CLUSCTL_NODE_VALIDATE_PRIVATE_PROPERTIES = CLUSCTL_NODE_CODE(CLCTL_VALIDATE_PRIVATE_PROPERTIES), | |
| 550 CLUSCTL_NODE_GET_COMMON_PROPERTY_FMTS = CLUSCTL_NODE_CODE(CLCTL_GET_COMMON_PROPERTY_FMTS), | |
| 551 CLUSCTL_NODE_GET_PRIVATE_PROPERTY_FMTS = CLUSCTL_NODE_CODE(CLCTL_GET_PRIVATE_PROPERTY_FMTS), | |
| 552 CLUSCTL_NODE_GET_CLUSTER_SERVICE_ACCOUNT_NAME = CLUSCTL_NODE_CODE(CLCTL_GET_CLUSTER_SERVICE_ACCOUNT_NAME) | |
| 553 } CLUSCTL_NODE_CODES; | |
| 554 | |
| 555 typedef enum CLUSCTL_NETWORK_CODES { | |
| 556 CLUSCTL_NETWORK_UNKNOWN = CLUSCTL_NETWORK_CODE(CLCTL_UNKNOWN), | |
| 557 CLUSCTL_NETWORK_GET_CHARACTERISTICS = CLUSCTL_NETWORK_CODE(CLCTL_GET_CHARACTERISTICS), | |
| 558 CLUSCTL_NETWORK_GET_FLAGS = CLUSCTL_NETWORK_CODE(CLCTL_GET_FLAGS), | |
| 559 CLUSCTL_NETWORK_GET_NAME = CLUSCTL_NETWORK_CODE(CLCTL_GET_NAME), | |
| 560 CLUSCTL_NETWORK_GET_ID = CLUSCTL_NETWORK_CODE(CLCTL_GET_ID), | |
| 561 CLUSCTL_NETWORK_ENUM_COMMON_PROPERTIES = CLUSCTL_NETWORK_CODE(CLCTL_ENUM_COMMON_PROPERTIES), | |
| 562 CLUSCTL_NETWORK_GET_RO_COMMON_PROPERTIES = CLUSCTL_NETWORK_CODE(CLCTL_GET_RO_COMMON_PROPERTIES), | |
| 563 CLUSCTL_NETWORK_GET_COMMON_PROPERTIES = CLUSCTL_NETWORK_CODE(CLCTL_GET_COMMON_PROPERTIES), | |
| 564 CLUSCTL_NETWORK_SET_COMMON_PROPERTIES = CLUSCTL_NETWORK_CODE(CLCTL_SET_COMMON_PROPERTIES), | |
| 565 CLUSCTL_NETWORK_VALIDATE_COMMON_PROPERTIES = CLUSCTL_NETWORK_CODE(CLCTL_VALIDATE_COMMON_PROPERTIES), | |
| 566 CLUSCTL_NETWORK_ENUM_PRIVATE_PROPERTIES = CLUSCTL_NETWORK_CODE(CLCTL_ENUM_PRIVATE_PROPERTIES), | |
| 567 CLUSCTL_NETWORK_GET_RO_PRIVATE_PROPERTIES = CLUSCTL_NETWORK_CODE(CLCTL_GET_RO_PRIVATE_PROPERTIES), | |
| 568 CLUSCTL_NETWORK_GET_PRIVATE_PROPERTIES = CLUSCTL_NETWORK_CODE(CLCTL_GET_PRIVATE_PROPERTIES), | |
| 569 CLUSCTL_NETWORK_SET_PRIVATE_PROPERTIES = CLUSCTL_NETWORK_CODE(CLCTL_SET_PRIVATE_PROPERTIES), | |
| 570 CLUSCTL_NETWORK_VALIDATE_PRIVATE_PROPERTIES = CLUSCTL_NETWORK_CODE(CLCTL_VALIDATE_PRIVATE_PROPERTIES), | |
| 571 CLUSCTL_NETWORK_GET_COMMON_PROPERTY_FMTS = CLUSCTL_NETWORK_CODE(CLCTL_GET_COMMON_PROPERTY_FMTS), | |
| 572 CLUSCTL_NETWORK_GET_PRIVATE_PROPERTY_FMTS = CLUSCTL_NETWORK_CODE(CLCTL_GET_PRIVATE_PROPERTY_FMTS) | |
| 573 } CLUSCTL_NETWORK_CODES; | |
| 574 | |
| 575 typedef enum CLUSCTL_NETINTERFACE_CODES { | |
| 576 CLUSCTL_NETINTERFACE_UNKNOWN = CLUSCTL_NETINTERFACE_CODE(CLCTL_UNKNOWN), | |
| 577 CLUSCTL_NETINTERFACE_GET_CHARACTERISTICS = CLUSCTL_NETINTERFACE_CODE(CLCTL_GET_CHARACTERISTICS), | |
| 578 CLUSCTL_NETINTERFACE_GET_FLAGS = CLUSCTL_NETINTERFACE_CODE(CLCTL_GET_FLAGS), | |
| 579 CLUSCTL_NETINTERFACE_GET_NAME = CLUSCTL_NETINTERFACE_CODE(CLCTL_GET_NAME), | |
| 580 CLUSCTL_NETINTERFACE_GET_ID = CLUSCTL_NETINTERFACE_CODE(CLCTL_GET_ID), | |
| 581 CLUSCTL_NETINTERFACE_GET_NODE = CLUSCTL_NETINTERFACE_CODE(CLCTL_GET_NODE), | |
| 582 CLUSCTL_NETINTERFACE_GET_NETWORK = CLUSCTL_NETINTERFACE_CODE(CLCTL_GET_NETWORK), | |
| 583 CLUSCTL_NETINTERFACE_ENUM_COMMON_PROPERTIES = CLUSCTL_NETINTERFACE_CODE(CLCTL_ENUM_COMMON_PROPERTIES), | |
| 584 CLUSCTL_NETINTERFACE_GET_RO_COMMON_PROPERTIES = CLUSCTL_NETINTERFACE_CODE(CLCTL_GET_RO_COMMON_PROPERTIES), | |
| 585 CLUSCTL_NETINTERFACE_GET_COMMON_PROPERTIES = CLUSCTL_NETINTERFACE_CODE(CLCTL_GET_COMMON_PROPERTIES), | |
| 586 CLUSCTL_NETINTERFACE_SET_COMMON_PROPERTIES = CLUSCTL_NETINTERFACE_CODE(CLCTL_SET_COMMON_PROPERTIES), | |
| 587 CLUSCTL_NETINTERFACE_VALIDATE_COMMON_PROPERTIES = CLUSCTL_NETINTERFACE_CODE(CLCTL_VALIDATE_COMMON_PROPERTIES), | |
| 588 CLUSCTL_NETINTERFACE_ENUM_PRIVATE_PROPERTIES = CLUSCTL_NETINTERFACE_CODE(CLCTL_ENUM_PRIVATE_PROPERTIES), | |
| 589 CLUSCTL_NETINTERFACE_GET_RO_PRIVATE_PROPERTIES = CLUSCTL_NETINTERFACE_CODE(CLCTL_GET_RO_PRIVATE_PROPERTIES), | |
| 590 CLUSCTL_NETINTERFACE_GET_PRIVATE_PROPERTIES = CLUSCTL_NETINTERFACE_CODE(CLCTL_GET_PRIVATE_PROPERTIES), | |
| 591 CLUSCTL_NETINTERFACE_SET_PRIVATE_PROPERTIES = CLUSCTL_NETINTERFACE_CODE(CLCTL_SET_PRIVATE_PROPERTIES), | |
| 592 CLUSCTL_NETINTERFACE_VALIDATE_PRIVATE_PROPERTIES = CLUSCTL_NETINTERFACE_CODE(CLCTL_VALIDATE_PRIVATE_PROPERTIES), | |
| 593 CLUSCTL_NETINTERFACE_GET_COMMON_PROPERTY_FMTS = CLUSCTL_NETINTERFACE_CODE(CLCTL_GET_COMMON_PROPERTY_FMTS), | |
| 594 CLUSCTL_NETINTERFACE_GET_PRIVATE_PROPERTY_FMTS = CLUSCTL_NETINTERFACE_CODE(CLCTL_GET_PRIVATE_PROPERTY_FMTS) | |
| 595 } CLUSCTL_NETINTERFACE_CODES; | |
| 596 | |
| 597 typedef enum CLUSCTL_CLUSTER_CODES { | |
| 598 CLUSCTL_CLUSTER_UNKNOWN = CLUSCTL_CLUSTER_CODE(CLCTL_UNKNOWN), | |
| 599 CLUSCTL_CLUSTER_GET_FQDN = CLUSCTL_CLUSTER_CODE(CLCTL_GET_FQDN), | |
| 600 CLUSCTL_CLUSTER_ENUM_COMMON_PROPERTIES = CLUSCTL_CLUSTER_CODE(CLCTL_ENUM_COMMON_PROPERTIES), | |
| 601 CLUSCTL_CLUSTER_GET_RO_COMMON_PROPERTIES = CLUSCTL_CLUSTER_CODE(CLCTL_GET_RO_COMMON_PROPERTIES), | |
| 602 CLUSCTL_CLUSTER_GET_COMMON_PROPERTIES = CLUSCTL_CLUSTER_CODE(CLCTL_GET_COMMON_PROPERTIES), | |
| 603 CLUSCTL_CLUSTER_SET_COMMON_PROPERTIES = CLUSCTL_CLUSTER_CODE(CLCTL_SET_COMMON_PROPERTIES), | |
| 604 CLUSCTL_CLUSTER_VALIDATE_COMMON_PROPERTIES = CLUSCTL_CLUSTER_CODE(CLCTL_VALIDATE_COMMON_PROPERTIES), | |
| 605 CLUSCTL_CLUSTER_ENUM_PRIVATE_PROPERTIES = CLUSCTL_CLUSTER_CODE(CLCTL_ENUM_PRIVATE_PROPERTIES), | |
| 606 CLUSCTL_CLUSTER_GET_RO_PRIVATE_PROPERTIES = CLUSCTL_CLUSTER_CODE(CLCTL_GET_RO_PRIVATE_PROPERTIES), | |
| 607 CLUSCTL_CLUSTER_GET_PRIVATE_PROPERTIES = CLUSCTL_CLUSTER_CODE(CLCTL_GET_PRIVATE_PROPERTIES), | |
| 608 CLUSCTL_CLUSTER_SET_PRIVATE_PROPERTIES = CLUSCTL_CLUSTER_CODE(CLCTL_SET_PRIVATE_PROPERTIES), | |
| 609 CLUSCTL_CLUSTER_VALIDATE_PRIVATE_PROPERTIES = CLUSCTL_CLUSTER_CODE(CLCTL_VALIDATE_PRIVATE_PROPERTIES), | |
| 610 CLUSCTL_CLUSTER_GET_COMMON_PROPERTY_FMTS = CLUSCTL_CLUSTER_CODE(CLCTL_GET_COMMON_PROPERTY_FMTS), | |
| 611 CLUSCTL_CLUSTER_GET_PRIVATE_PROPERTY_FMTS = CLUSCTL_CLUSTER_CODE(CLCTL_GET_PRIVATE_PROPERTY_FMTS) | |
| 612 } CLUSCTL_CLUSTER_CODES; | |
| 613 | |
| 614 typedef enum CLUSTER_RESOURCE_CLASS { | |
| 615 CLUS_RESCLASS_UNKNOWN = 0,CLUS_RESCLASS_STORAGE,CLUS_RESCLASS_USER = 32768 | |
| 616 } CLUSTER_RESOURCE_CLASS; | |
| 617 | |
| 618 typedef enum CLUS_RESSUBCLASS { | |
| 619 CLUS_RESSUBCLASS_SHARED = 0x80000000 | |
| 620 } CLUS_RESSUBCLASS; | |
| 621 | |
| 622 typedef enum CLUS_CHARACTERISTICS { | |
| 623 CLUS_CHAR_UNKNOWN = 0x00000000,CLUS_CHAR_QUORUM = 0x00000001,CLUS_CHAR_DELETE_REQUIRES_ALL_NODES = 0x00000002,CLUS_CHAR_LOCAL_QUORUM = 0x00000004, | |
| 624 CLUS_CHAR_LOCAL_QUORUM_DEBUG = 0x00000008,CLUS_CHAR_REQUIRES_STATE_CHANGE_REASON = 0x00000010 | |
| 625 } CLUS_CHARACTERISTICS; | |
| 626 | |
| 627 typedef enum CLUS_FLAGS { | |
| 628 CLUS_FLAG_CORE = 0x00000001 | |
| 629 } CLUS_FLAGS; | |
| 630 | |
| 631 typedef union CLUSPROP_SYNTAX { | |
| 632 DWORD dw; | |
| 633 __MINGW_EXTENSION struct { | |
| 634 WORD wFormat; | |
| 635 WORD wType; | |
| 636 }; | |
| 637 } CLUSPROP_SYNTAX,*PCLUSPROP_SYNTAX; | |
| 638 | |
| 639 typedef struct CLUSPROP_VALUE { | |
| 640 CLUSPROP_SYNTAX Syntax; | |
| 641 DWORD cbLength; | |
| 642 } CLUSPROP_VALUE,*PCLUSPROP_VALUE; | |
| 643 | |
| 644 typedef struct CLUSPROP_BINARY | |
| 645 #ifdef __cplusplus | |
| 646 : public CLUSPROP_VALUE | |
| 647 #endif | |
| 648 { | |
| 649 #ifndef __cplusplus | |
| 650 CLUSPROP_VALUE; | |
| 651 #endif | |
| 652 BYTE rgb[1]; | |
| 653 } CLUSPROP_BINARY,*PCLUSPROP_BINARY; | |
| 654 | |
| 655 typedef struct CLUSPROP_WORD | |
| 656 #ifdef __cplusplus | |
| 657 : public CLUSPROP_VALUE | |
| 658 #endif | |
| 659 { | |
| 660 #ifndef __cplusplus | |
| 661 CLUSPROP_VALUE; | |
| 662 #endif | |
| 663 WORD w; | |
| 664 } CLUSPROP_WORD,*PCLUSPROP_WORD; | |
| 665 | |
| 666 typedef struct CLUSPROP_DWORD | |
| 667 #ifdef __cplusplus | |
| 668 : public CLUSPROP_VALUE | |
| 669 #endif | |
| 670 { | |
| 671 #ifndef __cplusplus | |
| 672 CLUSPROP_VALUE; | |
| 673 #endif | |
| 674 DWORD dw; | |
| 675 } CLUSPROP_DWORD,*PCLUSPROP_DWORD; | |
| 676 | |
| 677 typedef struct CLUSPROP_LONG | |
| 678 #ifdef __cplusplus | |
| 679 : public CLUSPROP_VALUE | |
| 680 #endif | |
| 681 { | |
| 682 #ifndef __cplusplus | |
| 683 CLUSPROP_VALUE; | |
| 684 #endif | |
| 685 LONG l; | |
| 686 } CLUSPROP_LONG,*PCLUSPROP_LONG; | |
| 687 | |
| 688 typedef struct CLUSPROP_SZ | |
| 689 #ifdef __cplusplus | |
| 690 : public CLUSPROP_VALUE | |
| 691 #endif | |
| 692 { | |
| 693 #ifndef __cplusplus | |
| 694 CLUSPROP_VALUE; | |
| 695 #endif | |
| 696 WCHAR sz[1]; | |
| 697 } CLUSPROP_SZ,*PCLUSPROP_SZ; | |
| 698 | |
| 699 typedef CLUSPROP_SZ CLUSPROP_MULTI_SZ,*PCLUSPROP_MULTI_SZ; | |
| 700 typedef CLUSPROP_SZ CLUSPROP_PROPERTY_NAME,*PCLUSPROP_PROPERTY_NAME; | |
| 701 | |
| 702 typedef struct CLUSPROP_ULARGE_INTEGER | |
| 703 #ifdef __cplusplus | |
| 704 : public CLUSPROP_VALUE | |
| 705 #endif | |
| 706 { | |
| 707 #ifndef __cplusplus | |
| 708 CLUSPROP_VALUE; | |
| 709 #endif | |
| 710 ULARGE_INTEGER li; | |
| 711 } CLUSPROP_ULARGE_INTEGER,*PCLUSPROP_ULARGE_INTEGER; | |
| 712 | |
| 713 typedef struct CLUSPROP_LARGE_INTEGER | |
| 714 #ifdef __cplusplus | |
| 715 : public CLUSPROP_VALUE | |
| 716 #endif | |
| 717 { | |
| 718 #ifndef __cplusplus | |
| 719 CLUSPROP_VALUE; | |
| 720 #endif | |
| 721 LARGE_INTEGER li; | |
| 722 } CLUSPROP_LARGE_INTEGER,*PCLUSPROP_LARGE_INTEGER; | |
| 723 | |
| 724 typedef struct CLUSPROP_SECURITY_DESCRIPTOR | |
| 725 #ifdef __cplusplus | |
| 726 : public CLUSPROP_VALUE | |
| 727 #endif | |
| 728 { | |
| 729 #ifndef __cplusplus | |
| 730 CLUSPROP_VALUE; | |
| 731 #endif | |
| 732 __MINGW_EXTENSION union { | |
| 733 SECURITY_DESCRIPTOR_RELATIVE sd; | |
| 734 BYTE rgbSecurityDescriptor[1]; | |
| 735 }; | |
| 736 } CLUSPROP_SECURITY_DESCRIPTOR,*PCLUSPROP_SECURITY_DESCRIPTOR; | |
| 737 | |
| 738 typedef struct CLUS_RESOURCE_CLASS_INFO { | |
| 739 __MINGW_EXTENSION union { | |
| 740 __MINGW_EXTENSION struct { | |
| 741 __MINGW_EXTENSION union { | |
| 742 DWORD dw; | |
| 743 CLUSTER_RESOURCE_CLASS rc; | |
| 744 }; | |
| 745 DWORD SubClass; | |
| 746 }; | |
| 747 ULARGE_INTEGER li; | |
| 748 }; | |
| 749 } CLUS_RESOURCE_CLASS_INFO,*PCLUS_RESOURCE_CLASS_INFO; | |
| 750 | |
| 751 typedef struct CLUSPROP_RESOURCE_CLASS | |
| 752 #ifdef __cplusplus | |
| 753 : public CLUSPROP_VALUE | |
| 754 #endif | |
| 755 { | |
| 756 #ifndef __cplusplus | |
| 757 CLUSPROP_VALUE; | |
| 758 #endif | |
| 759 CLUSTER_RESOURCE_CLASS rc; | |
| 760 } CLUSPROP_RESOURCE_CLASS,*PCLUSPROP_RESOURCE_CLASS; | |
| 761 | |
| 762 typedef struct CLUSPROP_RESOURCE_CLASS_INFO | |
| 763 #ifdef __cplusplus | |
| 764 : public CLUSPROP_VALUE,public CLUS_RESOURCE_CLASS_INFO | |
| 765 #endif | |
| 766 { | |
| 767 #ifndef __cplusplus | |
| 768 CLUSPROP_VALUE; | |
| 769 CLUS_RESOURCE_CLASS_INFO; | |
| 770 #endif | |
| 771 } CLUSPROP_RESOURCE_CLASS_INFO,*PCLUSPROP_RESOURCE_CLASS_INFO; | |
| 772 | |
| 773 typedef union CLUSPROP_REQUIRED_DEPENDENCY { | |
| 774 CLUSPROP_VALUE Value; | |
| 775 CLUSPROP_RESOURCE_CLASS ResClass; | |
| 776 CLUSPROP_SZ ResTypeName; | |
| 777 } CLUSPROP_REQUIRED_DEPENDENCY,*PCLUSPROP_REQUIRED_DEPENDENCY; | |
| 778 | |
| 779 typedef CLUSPROP_DWORD CLUSPROP_DISK_NUMBER,*PCLUSPROP_DISK_NUMBER; | |
| 780 #endif | |
| 781 | |
| 782 #ifndef _CLUSTER_API_TYPES_ | |
| 783 typedef enum CLUSPROP_PIFLAGS { | |
| 784 CLUSPROP_PIFLAG_STICKY = 0x00000001,CLUSPROP_PIFLAG_REMOVABLE = 0x00000002,CLUSPROP_PIFLAG_USABLE = 0x00000004, | |
| 785 CLUSPROP_PIFLAG_DEFAULT_QUORUM = 0x00000008 | |
| 786 } CLUSPROP_PIFLAGS; | |
| 787 | |
| 788 typedef struct CLUS_FORCE_QUORUM_INFO { | |
| 789 DWORD dwSize; | |
| 790 DWORD dwNodeBitMask; | |
| 791 DWORD dwMaxNumberofNodes; | |
| 792 WCHAR multiszNodeList[1]; | |
| 793 } CLUS_FORCE_QUORUM_INFO,*PCLUS_FORCE_QUORUM_INFO; | |
| 794 | |
| 795 typedef struct CLUS_PARTITION_INFO { | |
| 796 DWORD dwFlags; | |
| 797 WCHAR szDeviceName[MAX_PATH]; | |
| 798 WCHAR szVolumeLabel[MAX_PATH]; | |
| 799 DWORD dwSerialNumber; | |
| 800 DWORD rgdwMaximumComponentLength; | |
| 801 DWORD dwFileSystemFlags; | |
| 802 WCHAR szFileSystem[32]; | |
| 803 } CLUS_PARTITION_INFO,*PCLUS_PARTITION_INFO; | |
| 804 | |
| 805 typedef struct CLUSPROP_PARTITION_INFO | |
| 806 #ifdef __cplusplus | |
| 807 : public CLUSPROP_VALUE,public CLUS_PARTITION_INFO | |
| 808 #endif | |
| 809 { | |
| 810 #ifndef __cplusplus | |
| 811 CLUSPROP_VALUE; | |
| 812 CLUS_PARTITION_INFO; | |
| 813 #endif | |
| 814 } CLUSPROP_PARTITION_INFO,*PCLUSPROP_PARTITION_INFO; | |
| 815 | |
| 816 typedef struct CLUS_FTSET_INFO { | |
| 817 DWORD dwRootSignature; | |
| 818 DWORD dwFtType; | |
| 819 } CLUS_FTSET_INFO,*PCLUS_FTSET_INFO; | |
| 820 | |
| 821 typedef struct CLUSPROP_FTSET_INFO | |
| 822 #ifdef __cplusplus | |
| 823 : public CLUSPROP_VALUE,public CLUS_FTSET_INFO | |
| 824 #endif | |
| 825 { | |
| 826 #ifndef __cplusplus | |
| 827 CLUSPROP_VALUE; | |
| 828 CLUS_FTSET_INFO; | |
| 829 #endif | |
| 830 } CLUSPROP_FTSET_INFO,*PCLUSPROP_FTSET_INFO; | |
| 831 | |
| 832 typedef CLUSPROP_DWORD CLUSPROP_DISK_SIGNATURE,*PCLUSPROP_DISK_SIGNATURE; | |
| 833 typedef struct CLUS_SCSI_ADDRESS { | |
| 834 __MINGW_EXTENSION union { | |
| 835 __MINGW_EXTENSION struct { | |
| 836 UCHAR PortNumber; | |
| 837 UCHAR PathId; | |
| 838 UCHAR TargetId; | |
| 839 UCHAR Lun; | |
| 840 }; | |
| 841 DWORD dw; | |
| 842 }; | |
| 843 } CLUS_SCSI_ADDRESS,*PCLUS_SCSI_ADDRESS; | |
| 844 | |
| 845 typedef struct CLUSPROP_SCSI_ADDRESS | |
| 846 #ifdef __cplusplus | |
| 847 : public CLUSPROP_VALUE,public CLUS_SCSI_ADDRESS | |
| 848 #endif | |
| 849 { | |
| 850 #ifndef __cplusplus | |
| 851 CLUSPROP_VALUE; | |
| 852 CLUS_SCSI_ADDRESS; | |
| 853 #endif | |
| 854 } CLUSPROP_SCSI_ADDRESS,*PCLUSPROP_SCSI_ADDRESS; | |
| 855 | |
| 856 typedef struct CLUS_NETNAME_VS_TOKEN_INFO { | |
| 857 DWORD ProcessID; | |
| 858 DWORD DesiredAccess; | |
| 859 WINBOOL InheritHandle; | |
| 860 } CLUS_NETNAME_VS_TOKEN_INFO,*PCLUS_NETNAME_VS_TOKEN_INFO; | |
| 861 | |
| 862 typedef struct CLUS_MAINTENANCE_MODE_INFO { | |
| 863 WINBOOL InMaintenance; | |
| 864 } CLUS_MAINTENANCE_MODE_INFO,*PCLUS_MAINTENANCE_MODE_INFO; | |
| 865 | |
| 866 typedef struct CLUSPROP_LIST { | |
| 867 DWORD nPropertyCount; | |
| 868 CLUSPROP_PROPERTY_NAME PropertyName; | |
| 869 } CLUSPROP_LIST,*PCLUSPROP_LIST; | |
| 870 | |
| 871 typedef union CLUSPROP_BUFFER_HELPER { | |
| 872 BYTE *pb; | |
| 873 WORD *pw; | |
| 874 DWORD *pdw; | |
| 875 LONG *pl; | |
| 876 LPWSTR psz; | |
| 877 PCLUSPROP_LIST pList; | |
| 878 PCLUSPROP_SYNTAX pSyntax; | |
| 879 PCLUSPROP_PROPERTY_NAME pName; | |
| 880 PCLUSPROP_VALUE pValue; | |
| 881 PCLUSPROP_BINARY pBinaryValue; | |
| 882 PCLUSPROP_WORD pWordValue; | |
| 883 PCLUSPROP_DWORD pDwordValue; | |
| 884 PCLUSPROP_LONG pLongValue; | |
| 885 PCLUSPROP_ULARGE_INTEGER pULargeIntegerValue; | |
| 886 PCLUSPROP_LARGE_INTEGER pLargeIntegerValue; | |
| 887 PCLUSPROP_SZ pStringValue; | |
| 888 PCLUSPROP_MULTI_SZ pMultiSzValue; | |
| 889 PCLUSPROP_SECURITY_DESCRIPTOR pSecurityDescriptor; | |
| 890 PCLUSPROP_RESOURCE_CLASS pResourceClassValue; | |
| 891 PCLUSPROP_RESOURCE_CLASS_INFO pResourceClassInfoValue; | |
| 892 PCLUSPROP_DISK_SIGNATURE pDiskSignatureValue; | |
| 893 PCLUSPROP_SCSI_ADDRESS pScsiAddressValue; | |
| 894 PCLUSPROP_DISK_NUMBER pDiskNumberValue; | |
| 895 PCLUSPROP_PARTITION_INFO pPartitionInfoValue; | |
| 896 PCLUSPROP_REQUIRED_DEPENDENCY pRequiredDependencyValue; | |
| 897 } CLUSPROP_BUFFER_HELPER,*PCLUSPROP_BUFFER_HELPER; | |
| 898 #endif | |
| 899 | |
| 900 #define ALIGN_CLUSPROP(count) ((count + 3) & ~3) | |
| 901 #define CLUSPROP_BINARY_DECLARE(name,cb) struct { CLUSPROP_SYNTAX Syntax; DWORD cbLength; BYTE rgb[(cb + 3) & ~3]; } name | |
| 902 #define CLUSPROP_SZ_DECLARE(name,cch) struct { CLUSPROP_SYNTAX Syntax; DWORD cbLength; WCHAR sz[(cch + 1) & ~1]; } name | |
| 903 #define CLUSPROP_PROPERTY_NAME_DECLARE(name,cch) CLUSPROP_SZ_DECLARE(name,cch) | |
| 904 | |
| 905 #ifndef _CLUSTER_API_TYPES_ | |
| 906 typedef enum CLUSTER_RESOURCE_ENUM { | |
| 907 CLUSTER_RESOURCE_ENUM_DEPENDS = 0x00000001,CLUSTER_RESOURCE_ENUM_PROVIDES = 0x00000002,CLUSTER_RESOURCE_ENUM_NODES = 0x00000004, | |
| 908 CLUSTER_RESOURCE_ENUM_ALL = (CLUSTER_RESOURCE_ENUM_DEPENDS | CLUSTER_RESOURCE_ENUM_PROVIDES | CLUSTER_RESOURCE_ENUM_NODES) | |
| 909 } CLUSTER_RESOURCE_ENUM; | |
| 910 | |
| 911 typedef enum CLUSTER_RESOURCE_TYPE_ENUM { | |
| 912 CLUSTER_RESOURCE_TYPE_ENUM_NODES = 0x00000001,CLUSTER_RESOURCE_TYPE_ENUM_ALL = (CLUSTER_RESOURCE_TYPE_ENUM_NODES) | |
| 913 } CLUSTER_RESOURCE_TYPE_ENUM; | |
| 914 #endif | |
| 915 | |
| 916 HRESENUM WINAPI ClusterResourceOpenEnum(HRESOURCE hResource,DWORD dwType); | |
| 917 DWORD WINAPI ClusterResourceGetEnumCount(HRESENUM hResEnum); | |
| 918 DWORD WINAPI ClusterResourceEnum(HRESENUM hResEnum,DWORD dwIndex,LPDWORD lpdwType,LPWSTR lpszName,LPDWORD lpcchName); | |
| 919 DWORD WINAPI ClusterResourceCloseEnum(HRESENUM hResEnum); | |
| 920 DWORD WINAPI CreateClusterResourceType(HCLUSTER hCluster,LPCWSTR lpszResourceTypeName,LPCWSTR lpszDisplayName,LPCWSTR lpszResourceTypeDll,DWORD dwLooksAlivePollInterval,DWORD dwIsAlivePollInterval); | |
| 921 DWORD WINAPI DeleteClusterResourceType(HCLUSTER hCluster,LPCWSTR lpszResourceTypeName); | |
| 922 HRESTYPEENUM WINAPI ClusterResourceTypeOpenEnum(HCLUSTER hCluster,LPCWSTR lpszResourceTypeName,DWORD dwType); | |
| 923 DWORD WINAPI ClusterResourceTypeGetEnumCount(HRESTYPEENUM hResTypeEnum); | |
| 924 DWORD WINAPI ClusterResourceTypeEnum(HRESTYPEENUM hResTypeEnum,DWORD dwIndex,LPDWORD lpdwType,LPWSTR lpszName,LPDWORD lpcchName); | |
| 925 DWORD WINAPI ClusterResourceTypeCloseEnum(HRESTYPEENUM hResTypeEnum); | |
| 926 | |
| 927 #ifndef _CLUSTER_API_TYPES_ | |
| 928 typedef enum CLUSTER_NETWORK_ENUM { | |
| 929 CLUSTER_NETWORK_ENUM_NETINTERFACES = 0x00000001,CLUSTER_NETWORK_ENUM_ALL = CLUSTER_NETWORK_ENUM_NETINTERFACES | |
| 930 } CLUSTER_NETWORK_ENUM; | |
| 931 | |
| 932 typedef enum CLUSTER_NETWORK_STATE { | |
| 933 ClusterNetworkStateUnknown = -1,ClusterNetworkUnavailable,ClusterNetworkDown,ClusterNetworkPartitioned,ClusterNetworkUp | |
| 934 } CLUSTER_NETWORK_STATE; | |
| 935 | |
| 936 typedef enum CLUSTER_NETWORK_ROLE { | |
| 937 ClusterNetworkRoleNone = 0,ClusterNetworkRoleInternalUse = 0x00000001,ClusterNetworkRoleClientAccess = 0x00000002, | |
| 938 ClusterNetworkRoleInternalAndClient = 0x00000003 | |
| 939 } CLUSTER_NETWORK_ROLE; | |
| 940 #endif | |
| 941 | |
| 942 HNETWORK WINAPI OpenClusterNetwork(HCLUSTER hCluster,LPCWSTR lpszNetworkName); | |
| 943 WINBOOL WINAPI CloseClusterNetwork(HNETWORK hNetwork); | |
| 944 HCLUSTER WINAPI GetClusterFromNetwork(HNETWORK hNetwork); | |
| 945 HNETWORKENUM WINAPI ClusterNetworkOpenEnum(HNETWORK hNetwork,DWORD dwType); | |
| 946 DWORD WINAPI ClusterNetworkGetEnumCount(HNETWORKENUM hNetworkEnum); | |
| 947 DWORD WINAPI ClusterNetworkEnum(HNETWORKENUM hNetworkEnum,DWORD dwIndex,LPDWORD lpdwType,LPWSTR lpszName,LPDWORD lpcchName); | |
| 948 DWORD WINAPI ClusterNetworkCloseEnum(HNETWORKENUM hNetworkEnum); | |
| 949 CLUSTER_NETWORK_STATE WINAPI GetClusterNetworkState(HNETWORK hNetwork); | |
| 950 DWORD WINAPI SetClusterNetworkName(HNETWORK hNetwork,LPCWSTR lpszName); | |
| 951 DWORD WINAPI GetClusterNetworkId(HNETWORK hNetwork,LPWSTR lpszNetworkId,LPDWORD lpcchName); | |
| 952 DWORD WINAPI ClusterNetworkControl(HNETWORK hNetwork,HNODE hHostNode,DWORD dwControlCode,LPVOID lpInBuffer,DWORD nInBufferSize,LPVOID lpOutBuffer,DWORD nOutBufferSize,LPDWORD lpBytesReturned); | |
| 953 | |
| 954 #ifndef _CLUSTER_API_TYPES_ | |
| 955 typedef enum CLUSTER_NETINTERFACE_STATE { | |
| 956 ClusterNetInterfaceStateUnknown = -1,ClusterNetInterfaceUnavailable,ClusterNetInterfaceFailed,ClusterNetInterfaceUnreachable,ClusterNetInterfaceUp | |
| 957 } CLUSTER_NETINTERFACE_STATE; | |
| 958 #endif | |
| 959 | |
| 960 HNETINTERFACE WINAPI OpenClusterNetInterface(HCLUSTER hCluster,LPCWSTR lpszInterfaceName); | |
| 961 DWORD WINAPI GetClusterNetInterface(HCLUSTER hCluster,LPCWSTR lpszNodeName,LPCWSTR lpszNetworkName,LPWSTR lpszInterfaceName,LPDWORD lpcchInterfaceName); | |
| 962 WINBOOL WINAPI CloseClusterNetInterface(HNETINTERFACE hNetInterface); | |
| 963 HCLUSTER WINAPI GetClusterFromNetInterface(HNETINTERFACE hNetInterface); | |
| 964 CLUSTER_NETINTERFACE_STATE WINAPI GetClusterNetInterfaceState(HNETINTERFACE hNetInterface); | |
| 965 DWORD WINAPI ClusterNetInterfaceControl(HNETINTERFACE hNetInterface,HNODE hHostNode,DWORD dwControlCode,LPVOID lpInBuffer,DWORD nInBufferSize,LPVOID lpOutBuffer,DWORD nOutBufferSize,LPDWORD lpBytesReturned); | |
| 966 HKEY WINAPI GetClusterKey(HCLUSTER hCluster,REGSAM samDesired); | |
| 967 HKEY WINAPI GetClusterGroupKey(HGROUP hGroup,REGSAM samDesired); | |
| 968 HKEY WINAPI GetClusterResourceKey(HRESOURCE hResource,REGSAM samDesired); | |
| 969 HKEY WINAPI GetClusterNodeKey(HNODE hNode,REGSAM samDesired); | |
| 970 HKEY WINAPI GetClusterNetworkKey(HNETWORK hNetwork,REGSAM samDesired); | |
| 971 HKEY WINAPI GetClusterNetInterfaceKey(HNETINTERFACE hNetInterface,REGSAM samDesired); | |
| 972 LONG WINAPI ClusterRegCreateKey(HKEY hKey,LPCWSTR lpszSubKey,DWORD dwOptions,REGSAM samDesired,LPSECURITY_ATTRIBUTES lpSecurityAttributes,PHKEY phkResult,LPDWORD lpdwDisposition); | |
| 973 LONG WINAPI ClusterRegOpenKey(HKEY hKey,LPCWSTR lpszSubKey,REGSAM samDesired,PHKEY phkResult); | |
| 974 LONG WINAPI ClusterRegDeleteKey(HKEY hKey,LPCWSTR lpszSubKey); | |
| 975 LONG WINAPI ClusterRegCloseKey(HKEY hKey); | |
| 976 LONG WINAPI ClusterRegEnumKey(HKEY hKey,DWORD dwIndex,LPWSTR lpszName,LPDWORD lpcchName,PFILETIME lpftLastWriteTime); | |
| 977 DWORD WINAPI ClusterRegSetValue(HKEY hKey,LPCWSTR lpszValueName,DWORD dwType,CONST BYTE *lpData,DWORD cbData); | |
| 978 DWORD WINAPI ClusterRegDeleteValue(HKEY hKey,LPCWSTR lpszValueName); | |
| 979 LONG WINAPI ClusterRegQueryValue(HKEY hKey,LPCWSTR lpszValueName,LPDWORD lpdwValueType,LPBYTE lpData,LPDWORD lpcbData); | |
| 980 DWORD WINAPI ClusterRegEnumValue(HKEY hKey,DWORD dwIndex,LPWSTR lpszValueName,LPDWORD lpcchValueName,LPDWORD lpdwType,LPBYTE lpData,LPDWORD lpcbData); | |
| 981 LONG WINAPI ClusterRegQueryInfoKey(HKEY hKey,LPDWORD lpcSubKeys,LPDWORD lpcchMaxSubKeyLen,LPDWORD lpcValues,LPDWORD lpcchMaxValueNameLen,LPDWORD lpcbMaxValueLen,LPDWORD lpcbSecurityDescriptor,PFILETIME lpftLastWriteTime); | |
| 982 LONG WINAPI ClusterRegGetKeySecurity (HKEY hKey,SECURITY_INFORMATION RequestedInformation,PSECURITY_DESCRIPTOR pSecurityDescriptor,LPDWORD lpcbSecurityDescriptor); | |
| 983 LONG WINAPI ClusterRegSetKeySecurity(HKEY hKey,SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR pSecurityDescriptor); | |
| 984 | |
| 985 #ifdef __cplusplus | |
| 986 } | |
| 987 #endif | |
| 988 | |
| 989 #ifndef _CLUSTER_API_TYPES_ | |
| 990 #define _CLUSTER_API_TYPES_ | |
| 991 #endif | |
| 992 #endif |
