clusapi.h (5.2.3790.3959-Windows 5.0) | | clusapi.h (6.0.6001.18000-Windows 6.0) |
| | |
skipping to change at line 21 | | skipping to change at line 21 |
This module defines the common management and application interface to | | This module defines the common management and application interface to |
the Microsoft Cluster Server services. | | the Microsoft Cluster Server services. |
| | |
Revision History: | | Revision History: |
| | |
--*/ | | --*/ |
| | |
#ifndef _CLUSTER_API_ | | #ifndef _CLUSTER_API_ |
#define _CLUSTER_API_ | | #define _CLUSTER_API_ |
| | |
|
#define CLUSAPI_VERSION 0x0500 | | #define CLUSAPI_VERSION 0x0600 |
| | |
#if _MSC_VER > 1000 | | #if _MSC_VER > 1000 |
#pragma once | | #pragma once |
#endif | | #endif |
| | |
#ifdef __cplusplus | | #ifdef __cplusplus |
extern "C" { | | extern "C" { |
#endif | | #endif |
| | |
|
#ifndef MIDL_PASS | | #if ( !MIDL_PASS && !__midl ) |
#if _MSC_VER >= 1200 | | #if _MSC_VER >= 1200 |
#pragma warning(push) | | #pragma warning(push) |
#endif | | #endif |
#pragma warning( disable : 4200 ) // nonstandard extension used : zero-sized arr
ay in struct/union | | #pragma warning( disable : 4200 ) // nonstandard extension used : zero-sized arr
ay in struct/union |
#pragma warning( disable : 4201 ) // nonstandard extension used : nameless struc
t/union | | #pragma warning( disable : 4201 ) // nonstandard extension used : nameless struc
t/union |
#endif // MIDL_PASS | | #endif // MIDL_PASS |
| | |
// | | // |
// General cluster definitions | | // General cluster definitions |
// | | // |
| | |
#ifndef _CLUSTER_API_TYPES_ | | #ifndef _CLUSTER_API_TYPES_ |
// | | // |
// Defined cluster handle types. | | // Defined cluster handle types. |
// | | // |
typedef struct _HCLUSTER *HCLUSTER; | | typedef struct _HCLUSTER *HCLUSTER; |
typedef struct _HNODE *HNODE; | | typedef struct _HNODE *HNODE; |
typedef struct _HRESOURCE *HRESOURCE; | | typedef struct _HRESOURCE *HRESOURCE; |
typedef struct _HGROUP *HGROUP; | | typedef struct _HGROUP *HGROUP; |
|
//typedef struct _HRESTYPE *HRESTYPE; | | |
typedef struct _HNETWORK *HNETWORK; | | typedef struct _HNETWORK *HNETWORK; |
typedef struct _HNETINTERFACE *HNETINTERFACE; | | typedef struct _HNETINTERFACE *HNETINTERFACE; |
typedef struct _HCHANGE *HCHANGE; | | typedef struct _HCHANGE *HCHANGE; |
typedef struct _HCLUSENUM *HCLUSENUM; | | typedef struct _HCLUSENUM *HCLUSENUM; |
typedef struct _HGROUPENUM *HGROUPENUM; | | typedef struct _HGROUPENUM *HGROUPENUM; |
typedef struct _HRESENUM *HRESENUM; | | typedef struct _HRESENUM *HRESENUM; |
typedef struct _HNETWORKENUM *HNETWORKENUM; | | typedef struct _HNETWORKENUM *HNETWORKENUM; |
typedef struct _HNODEENUM *HNODEENUM; | | typedef struct _HNODEENUM *HNODEENUM; |
typedef struct _HRESTYPEENUM *HRESTYPEENUM; | | typedef struct _HRESTYPEENUM *HRESTYPEENUM; |
|
| | typedef struct _HREGBATCH *HREGBATCH; |
| | |
#endif // _CLUSTER_API_TYPES_ | | #endif // _CLUSTER_API_TYPES_ |
| | |
// | | // |
// Definitions used in cluster management routines. | | // Definitions used in cluster management routines. |
// | | // |
| | |
|
#define MAX_CLUSTERNAME_LENGTH MAX_COMPUTERNAME_LENGTH | | #define MAX_CLUSTERNAME_LENGTH DNS_MAX_LABEL_LENGTH |
| | |
#ifndef _CLUSTER_API_TYPES_ | | #ifndef _CLUSTER_API_TYPES_ |
// | | // |
// Cluster-related structures and types | | // Cluster-related structures and types |
// | | // |
typedef enum CLUSTER_QUORUM_TYPE { | | typedef enum CLUSTER_QUORUM_TYPE { |
OperationalQuorum, | | OperationalQuorum, |
ModifyQuorum | | ModifyQuorum |
} CLUSTER_QUORUM_TYPE; | | } CLUSTER_QUORUM_TYPE; |
| | |
|
#ifndef MIDL_PASS | | #if ( !MIDL_PASS && !__midl ) |
| | |
typedef struct CLUSTERVERSIONINFO_NT4 { | | typedef struct CLUSTERVERSIONINFO_NT4 { |
DWORD dwVersionInfoSize; | | DWORD dwVersionInfoSize; |
WORD MajorVersion; | | WORD MajorVersion; |
WORD MinorVersion; | | WORD MinorVersion; |
WORD BuildNumber; | | WORD BuildNumber; |
WCHAR szVendorId[64]; | | WCHAR szVendorId[64]; |
WCHAR szCSDVersion[64]; | | WCHAR szCSDVersion[64]; |
}CLUSTERVERSIONINFO_NT4, *PCLUSTERVERSIONINFO_NT4; | | }CLUSTERVERSIONINFO_NT4, *PCLUSTERVERSIONINFO_NT4; |
| | |
| | |
skipping to change at line 115 | | skipping to change at line 115 |
BOOL bForm; | | BOOL bForm; |
BOOL bFirst; | | BOOL bFirst; |
} CLUS_STARTING_PARAMS, * PCLUS_STARTING_PARAMS; | | } CLUS_STARTING_PARAMS, * PCLUS_STARTING_PARAMS; |
| | |
#define CLUSTER_VERSION_FLAG_MIXED_MODE 0x00000001 | | #define CLUSTER_VERSION_FLAG_MIXED_MODE 0x00000001 |
| | |
#define NT4_MAJOR_VERSION 1 | | #define NT4_MAJOR_VERSION 1 |
#define NT4SP4_MAJOR_VERSION 2 | | #define NT4SP4_MAJOR_VERSION 2 |
#define NT5_MAJOR_VERSION 3 | | #define NT5_MAJOR_VERSION 3 |
#define NT51_MAJOR_VERSION 4 | | #define NT51_MAJOR_VERSION 4 |
|
| | #define LONGHORN_MAJOR_VERSION 5 |
| | |
#define CLUSTER_VERSION_UNKNOWN 0xFFFFFFFF | | #define CLUSTER_VERSION_UNKNOWN 0xFFFFFFFF |
| | |
// | | // |
// Version number macros | | // Version number macros |
// | | // |
| | |
#define CLUSTER_MAKE_VERSION( _maj, _min ) ((( _maj ) << 16 ) | ( _min )) | | #define CLUSTER_MAKE_VERSION( _maj, _min ) ((( _maj ) << 16 ) | ( _min )) |
#define CLUSTER_GET_MAJOR_VERSION( _ver ) (( _ver ) >> 16 ) | | #define CLUSTER_GET_MAJOR_VERSION( _ver ) (( _ver ) >> 16 ) |
#define CLUSTER_GET_MINOR_VERSION( _ver ) (( _ver ) & 0xFFFF ) | | #define CLUSTER_GET_MINOR_VERSION( _ver ) (( _ver ) & 0xFFFF ) |
| | |
skipping to change at line 142 | | skipping to change at line 143 |
#define CLUSTER_CONFIGURED 0x00000002 | | #define CLUSTER_CONFIGURED 0x00000002 |
#define CLUSTER_RUNNING 0x00000010 | | #define CLUSTER_RUNNING 0x00000010 |
| | |
typedef enum NODE_CLUSTER_STATE { | | typedef enum NODE_CLUSTER_STATE { |
ClusterStateNotInstalled = 0x00000000, | | ClusterStateNotInstalled = 0x00000000, |
ClusterStateNotConfigured = CLUSTER_INSTALLED, | | ClusterStateNotConfigured = CLUSTER_INSTALLED, |
ClusterStateNotRunning = CLUSTER_INSTALLED | CLUSTER_CONFIG
URED, | | ClusterStateNotRunning = CLUSTER_INSTALLED | CLUSTER_CONFIG
URED, |
ClusterStateRunning = CLUSTER_INSTALLED | CLUSTER_CONFIG
URED | CLUSTER_RUNNING | | ClusterStateRunning = CLUSTER_INSTALLED | CLUSTER_CONFIG
URED | CLUSTER_RUNNING |
} NODE_CLUSTER_STATE; | | } NODE_CLUSTER_STATE; |
| | |
|
| | // Quorum mode flags for SetClusterQuorumResource API |
| | |
| | #define CLUS_HYBRID_QUORUM 1024 // 0xFFFFFFFF |
| | #define CLUS_NODE_MAJORITY_QUORUM 0 // 0xFFFFFFFE |
| | #define CLUS_LEGACY_QUORUM (4 * 1024 * 1024) // 0xFFFFFFFD |
| | |
// | | // |
// Resource state change reason related types and defines | | // Resource state change reason related types and defines |
// | | // |
#define CLUSCTL_RESOURCE_STATE_CHANGE_REASON_VERSION_1 1 | | #define CLUSCTL_RESOURCE_STATE_CHANGE_REASON_VERSION_1 1 |
| | |
typedef enum CLUSTER_RESOURCE_STATE_CHANGE_REASON { | | typedef enum CLUSTER_RESOURCE_STATE_CHANGE_REASON { |
eResourceStateChangeReasonUnknown, | | eResourceStateChangeReasonUnknown, |
eResourceStateChangeReasonMove, | | eResourceStateChangeReasonMove, |
eResourceStateChangeReasonFailover, | | eResourceStateChangeReasonFailover, |
eResourceStateChangeReasonFailedMove, | | eResourceStateChangeReasonFailedMove, |
eResourceStateChangeReasonShutdown, | | eResourceStateChangeReasonShutdown, |
eResourceStateChangeReasonRundown | | eResourceStateChangeReasonRundown |
} CLUSTER_RESOURCE_STATE_CHANGE_REASON; | | } CLUSTER_RESOURCE_STATE_CHANGE_REASON; |
| | |
|
#ifndef MIDL_PASS | | typedef enum _CLUSTER_REG_COMMAND |
| | { |
| | CLUSREG_COMMAND_NONE = 0, |
| | |
| | CLUSREG_SET_VALUE = 1, |
| | CLUSREG_CREATE_KEY, |
| | CLUSREG_DELETE_KEY, |
| | CLUSREG_DELETE_VALUE, |
| | CLUSREG_SET_KEY_SECURITY, |
| | |
| | CLUSREG_LAST_COMMAND |
| | |
| | } CLUSTER_REG_COMMAND; |
| | |
| | #if ( !MIDL_PASS && !__midl ) |
| | |
typedef struct _CLUSCTL_RESOURCE_STATE_CHANGE_REASON_STRUCT { | | typedef struct _CLUSCTL_RESOURCE_STATE_CHANGE_REASON_STRUCT { |
DWORD dwSize; | | DWORD dwSize; |
DWORD dwVersion; | | DWORD dwVersion; |
CLUSTER_RESOURCE_STATE_CHANGE_REASON eReason; | | CLUSTER_RESOURCE_STATE_CHANGE_REASON eReason; |
} CLUSCTL_RESOURCE_STATE_CHANGE_REASON_STRUCT, *PCLUSCTL_RESOURCE_STATE_CHANGE_R
EASON_STRUCT; | | } CLUSCTL_RESOURCE_STATE_CHANGE_REASON_STRUCT, *PCLUSCTL_RESOURCE_STATE_CHANGE_R
EASON_STRUCT; |
| | |
#endif // MIDL_PASS | | #endif // MIDL_PASS |
| | |
#endif // _CLUSTER_API_TYPES_ | | #endif // _CLUSTER_API_TYPES_ |
| | |
skipping to change at line 181 | | skipping to change at line 202 |
| | |
// | | // |
// Cluster API Specific Access Rights | | // Cluster API Specific Access Rights |
// | | // |
#define CLUSAPI_READ_ACCESS 0x00000001L | | #define CLUSAPI_READ_ACCESS 0x00000001L |
#define CLUSAPI_CHANGE_ACCESS 0x00000002L | | #define CLUSAPI_CHANGE_ACCESS 0x00000002L |
#define CLUSAPI_NO_ACCESS 0x00000004L | | #define CLUSAPI_NO_ACCESS 0x00000004L |
#define CLUSAPI_ALL_ACCESS (CLUSAPI_READ_ACCESS | CLUSAPI_CHANGE_ACCESS) | | #define CLUSAPI_ALL_ACCESS (CLUSAPI_READ_ACCESS | CLUSAPI_CHANGE_ACCESS) |
| | |
// | | // |
|
// Flags that control the behavior of SetClusterServiceAccountPassword | | // Return values for CLUSCTL_CLUSTER_CHECK_VOTER_DOWN and CLUSCTL_CLUSTER_CHECK_
VOTER_EVICT |
// | | // |
|
typedef enum CLUSTER_SET_PASSWORD_FLAGS { | | typedef enum CLUSTER_QUORUM_VALUE { |
CLUSTER_SET_PASSWORD_IGNORE_DOWN_NODES = 1 | | CLUSTER_QUORUM_MAINTAINED = 0, |
} CLUSTER_SET_PASSWORD_FLAGS; | | CLUSTER_QUORUM_LOST = 1, |
| | } CLUSTER_QUORUM_VALUE; |
| | |
|
#ifndef MIDL_PASS | | #if ( !MIDL_PASS && !__midl ) |
| | |
// | | // |
// Structure used to return the status of a request to set the | | // Structure used to return the status of a request to set the |
// password on the account used by the Cluster Service on each | | // password on the account used by the Cluster Service on each |
// cluster node. | | // cluster node. |
// | | // |
typedef struct CLUSTER_SET_PASSWORD_STATUS { | | typedef struct CLUSTER_SET_PASSWORD_STATUS { |
DWORD NodeId; | | DWORD NodeId; |
BOOLEAN SetAttempted; | | BOOLEAN SetAttempted; |
DWORD ReturnStatus; | | DWORD ReturnStatus; |
} CLUSTER_SET_PASSWORD_STATUS, *PCLUSTER_SET_PASSWORD_STATUS; | | } CLUSTER_SET_PASSWORD_STATUS, *PCLUSTER_SET_PASSWORD_STATUS; |
| | |
|
| | #ifndef _CLUSTER_API_TYPES_ |
| | typedef struct _CLUSTER_IP_ENTRY |
| | { |
| | PCWSTR lpszIpAddress; |
| | DWORD dwPrefixLength; |
| | } CLUSTER_IP_ENTRY, *PCLUSTER_IP_ENTRY; |
| | |
| | typedef struct _CREATE_CLUSTER_CONFIG |
| | { |
| | DWORD dwVersion; |
| | PCWSTR lpszClusterName; |
| | DWORD cNodes; |
| | PCWSTR * ppszNodeNames; |
| | DWORD cIpEntries; |
| | PCLUSTER_IP_ENTRY pIpEntries; |
| | PCWSTR lpszQuorumVolume; |
| | } CREATE_CLUSTER_CONFIG, *PCREATE_CLUSTER_CONFIG; |
| | #endif // _CLUSTER_API_TYPES_ |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
GetNodeClusterState( | | GetNodeClusterState( |
|
IN LPCWSTR lpszNodeName, | | __in_opt LPCWSTR lpszNodeName, |
OUT DWORD *pdwClusterState | | __out LPDWORD pdwClusterState |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_GET_NODE_CLUSTER_STATE)( |
| | __in_opt LPCWSTR lpszNodeName, |
| | __out LPDWORD pdwClusterState |
); | | ); |
| | |
HCLUSTER | | HCLUSTER |
WINAPI | | WINAPI |
OpenCluster( | | OpenCluster( |
|
IN LPCWSTR lpszClusterName | | __in_opt LPCWSTR lpszClusterName |
| | ); |
| | |
| | typedef HCLUSTER |
| | (WINAPI * PCLUSAPI_OPEN_CLUSTER)( |
| | __in_opt LPCWSTR lpszClusterName |
); | | ); |
| | |
BOOL | | BOOL |
WINAPI | | WINAPI |
CloseCluster( | | CloseCluster( |
|
IN HCLUSTER hCluster | | __in HCLUSTER hCluster |
| | ); |
| | |
| | typedef BOOL |
| | (WINAPI * PCLUSAPI_CLOSE_CLUSTER)( |
| | __in HCLUSTER hCluster |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
SetClusterName( | | SetClusterName( |
|
IN HCLUSTER hCluster, | | __in HCLUSTER hCluster, |
IN LPCWSTR lpszNewClusterName | | __in LPCWSTR lpszNewClusterName |
); | | ); |
| | |
|
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_SetClusterName)( |
| | __in HCLUSTER hCluster, |
| | __in LPCWSTR lpszNewClusterName |
| | ); |
| | |
| | __success(return == ERROR_SUCCESS) |
DWORD | | DWORD |
WINAPI | | WINAPI |
GetClusterInformation( | | GetClusterInformation( |
__in HCLUSTER hCluster, | | __in HCLUSTER hCluster, |
__out_ecount_part(*lpcchClusterName, *lpcchClusterName + 1) LPWSTR lpszClust
erName, | | __out_ecount_part(*lpcchClusterName, *lpcchClusterName + 1) LPWSTR lpszClust
erName, |
__inout LPDWORD lpcchClusterName, | | __inout LPDWORD lpcchClusterName, |
__out_opt LPCLUSTERVERSIONINFO lpClusterInfo | | __out_opt LPCLUSTERVERSIONINFO lpClusterInfo |
); | | ); |
| | |
|
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_GET_CLUSTER_INFORMATION)( |
| | __in HCLUSTER hCluster, |
| | __out_ecount_part(*lpcchClusterName, *lpcchClusterName + 1) LPWSTR lpszClust |
| | erName, |
| | __inout LPDWORD lpcchClusterName, |
| | __out_opt LPCLUSTERVERSIONINFO lpClusterInfo |
| | ); |
| | |
| | __success(return == ERROR_SUCCESS) |
DWORD | | DWORD |
WINAPI | | WINAPI |
GetClusterQuorumResource( | | GetClusterQuorumResource( |
__in HCLUSTER hCluster, | | __in HCLUSTER hCluster, |
__out_ecount_part(*lpcchResourceName, *lpcchResourceName + 1) LPWSTR lpszRes
ourceName, | | __out_ecount_part(*lpcchResourceName, *lpcchResourceName + 1) LPWSTR lpszRes
ourceName, |
__inout LPDWORD lpcchResourceName, | | __inout LPDWORD lpcchResourceName, |
__out_ecount_part(*lpcchDeviceName, *lpcchDeviceName + 1) LPWSTR lpszDeviceN
ame, | | __out_ecount_part(*lpcchDeviceName, *lpcchDeviceName + 1) LPWSTR lpszDeviceN
ame, |
__inout LPDWORD lpcchDeviceName, | | __inout LPDWORD lpcchDeviceName, |
__out LPDWORD lpdwMaxQuorumLogSize | | __out LPDWORD lpdwMaxQuorumLogSize |
); | | ); |
| | |
|
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_GET_CLUSTER_QUORUM_RESOURCE)( |
| | __in HCLUSTER hCluster, |
| | __out_ecount_part(*lpcchResourceName, *lpcchResourceName + 1) LPWSTR lpszRes |
| | ourceName, |
| | __inout LPDWORD lpcchResourceName, |
| | __out_ecount_part(*lpcchDeviceName, *lpcchDeviceName + 1) LPWSTR lpszDeviceN |
| | ame, |
| | __inout LPDWORD lpcchDeviceName, |
| | __out LPDWORD lpdwMaxQuorumLogSize |
| | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
SetClusterQuorumResource( | | SetClusterQuorumResource( |
|
IN HRESOURCE hResource, | | __in HRESOURCE hResource, |
IN LPCWSTR lpszDeviceName, | | __in_opt LPCWSTR lpszDeviceName, |
IN DWORD dwMaxQuoLogSize | | __in DWORD dwMaxQuoLogSize |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_SET_CLUSTER_QUORUM_RESOURCE)( |
| | __in HRESOURCE hResource, |
| | __in_opt LPCWSTR lpszDeviceName, |
| | __in DWORD dwMaxQuoLogSize |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
BackupClusterDatabase( | | BackupClusterDatabase( |
|
IN HCLUSTER hCluster, | | __in HCLUSTER hCluster, |
IN LPCWSTR lpszPathName | | __in LPCWSTR lpszPathName |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_BACKUP_CLUSTER_DATABASE)( |
| | __in HCLUSTER hCluster, |
| | __in LPCWSTR lpszPathName |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
RestoreClusterDatabase( | | RestoreClusterDatabase( |
|
IN LPCWSTR lpszPathName, | | __in LPCWSTR lpszPathName, |
IN BOOL bForce, | | __in BOOL bForce, |
IN OPTIONAL LPCWSTR lpszQuorumDriveLetter | | __in_opt LPCWSTR lpszQuorumDriveLetter |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_RESTORE_CLUSTER_DATABASE)( |
| | __in LPCWSTR lpszPathName, |
| | __in BOOL bForce, |
| | __in_opt LPCWSTR lpszQuorumDriveLetter |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
SetClusterNetworkPriorityOrder( | | SetClusterNetworkPriorityOrder( |
|
IN HCLUSTER hCluster, | | __in HCLUSTER hCluster, |
IN DWORD NetworkCount, | | __in DWORD NetworkCount, |
IN HNETWORK NetworkList[] | | __in_ecount( NetworkCount ) HNETWORK NetworkList[] |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_SET_CLUSTER_NETWORK_PRIORITY_ORDER)( |
| | __in HCLUSTER hCluster, |
| | __in DWORD NetworkCount, |
| | __in_ecount( NetworkCount ) HNETWORK NetworkList[] |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
SetClusterServiceAccountPassword( | | SetClusterServiceAccountPassword( |
__in LPCWSTR lpszClusterName, | | __in LPCWSTR lpszClusterName, |
__in LPCWSTR lpszNewPassword, | | __in LPCWSTR lpszNewPassword, |
__in DWORD dwFlags, | | __in DWORD dwFlags, |
__out_bcount_part_opt(*lpcbReturnStatusBufferSize, *lpcbReturnStatusBufferSi
ze) PCLUSTER_SET_PASSWORD_STATUS lpReturnStatusBuffer, | | __out_bcount_part_opt(*lpcbReturnStatusBufferSize, *lpcbReturnStatusBufferSi
ze) PCLUSTER_SET_PASSWORD_STATUS lpReturnStatusBuffer, |
__inout LPDWORD lpcbReturnStatusBufferSize | | __inout LPDWORD lpcbReturnStatusBufferSize |
); | | ); |
| | |
|
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_SET_CLUSTER_SERVICE_ACCOUNT_PASSWORD)( |
| | __in LPCWSTR lpszClusterName, |
| | __in LPCWSTR lpszNewPassword, |
| | __in DWORD dwFlags, |
| | __out_bcount_part_opt(*lpcbReturnStatusBufferSize, *lpcbReturnStatusBufferSi |
| | ze) PCLUSTER_SET_PASSWORD_STATUS lpReturnStatusBuffer, |
| | __inout LPDWORD lpcbReturnStatusBufferSize |
| | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
ClusterControl( | | ClusterControl( |
__in HCLUSTER hCluster, | | __in HCLUSTER hCluster, |
__in_opt HNODE hHostNode, | | __in_opt HNODE hHostNode, |
__in DWORD dwControlCode, | | __in DWORD dwControlCode, |
__in_bcount_opt(nInBufferSize) LPVOID lpInBuffer, | | __in_bcount_opt(nInBufferSize) LPVOID lpInBuffer, |
__in DWORD nInBufferSize, | | __in DWORD nInBufferSize, |
__out_bcount_part_opt(nOutBufferSize, *lpBytesReturned) LPVOID lpOutBuffer, | | __out_bcount_part_opt(nOutBufferSize, *lpBytesReturned) LPVOID lpOutBuffer, |
__in DWORD nOutBufferSize, | | __in DWORD nOutBufferSize, |
|
__out LPDWORD lpBytesReturned | | __out_opt LPDWORD lpBytesReturned |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_CLUSTER_CONTROL)( |
| | __in HCLUSTER hCluster, |
| | __in_opt HNODE hHostNode, |
| | __in DWORD dwControlCode, |
| | __in_bcount_opt(nInBufferSize) LPVOID lpInBuffer, |
| | __in DWORD nInBufferSize, |
| | __out_bcount_part_opt(nOutBufferSize, *lpBytesReturned) LPVOID lpOutBuffer, |
| | __in DWORD nOutBufferSize, |
| | __out_opt LPDWORD lpBytesReturned |
); | | ); |
| | |
#endif // MIDL_PASS | | #endif // MIDL_PASS |
| | |
// | | // |
// Cluster Event Notification API | | // Cluster Event Notification API |
// | | // |
| | |
#ifndef _CLUSTER_API_TYPES_ | | #ifndef _CLUSTER_API_TYPES_ |
// | | // |
| | |
skipping to change at line 390 | | skipping to change at line 521 |
CLUSTER_CHANGE_QUORUM_STATE
| | | CLUSTER_CHANGE_QUORUM_STATE
| |
CLUSTER_CHANGE_CLUSTER_STATE
| | | CLUSTER_CHANGE_CLUSTER_STATE
| |
CLUSTER_CHANGE_CLUSTER_PROPERTY
| | | CLUSTER_CHANGE_CLUSTER_PROPERTY
| |
CLUSTER_CHANGE_CLUSTER_RECONNECT
| | | CLUSTER_CHANGE_CLUSTER_RECONNECT
| |
CLUSTER_CHANGE_HANDLE_CLOSE) | | CLUSTER_CHANGE_HANDLE_CLOSE) |
| | |
} CLUSTER_CHANGE; | | } CLUSTER_CHANGE; |
| | |
#endif // _CLUSTER_API_TYPES_ | | #endif // _CLUSTER_API_TYPES_ |
| | |
|
#ifndef MIDL_PASS | | #if ( !MIDL_PASS && !__midl ) |
HCHANGE | | HCHANGE |
WINAPI | | WINAPI |
CreateClusterNotifyPort( | | CreateClusterNotifyPort( |
|
IN OPTIONAL HCHANGE hChange, | | __in HCHANGE hChange, |
IN OPTIONAL HCLUSTER hCluster, | | __in HCLUSTER hCluster, |
IN DWORD dwFilter, | | __in DWORD dwFilter, |
IN DWORD_PTR dwNotifyKey | | __in DWORD_PTR dwNotifyKey |
| | ); |
| | |
| | typedef HCHANGE |
| | (WINAPI * PCLUSAPI_CREATE_CLUSTER_NOTIFY_PORT)( |
| | __in HCHANGE hChange, |
| | __in HCLUSTER hCluster, |
| | __in DWORD dwFilter, |
| | __in DWORD_PTR dwNotifyKey |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
RegisterClusterNotify( | | RegisterClusterNotify( |
|
IN HCHANGE hChange, | | __in HCHANGE hChange, |
IN DWORD dwFilterType, | | __in DWORD dwFilterType, |
IN HANDLE hObject, | | __in HANDLE hObject, |
IN DWORD_PTR dwNotifyKey | | __in DWORD_PTR dwNotifyKey |
); | | ); |
| | |
|
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_REGISTER_CLUSTER_NOTIFY)( |
| | __in HCHANGE hChange, |
| | __in DWORD dwFilterType, |
| | __in HANDLE hObject, |
| | __in DWORD_PTR dwNotifyKey |
| | ); |
| | |
| | __success(return == ERROR_SUCCESS) |
DWORD | | DWORD |
WINAPI | | WINAPI |
GetClusterNotify( | | GetClusterNotify( |
__in HCHANGE hChange, | | __in HCHANGE hChange, |
__out DWORD_PTR *lpdwNotifyKey, | | __out DWORD_PTR *lpdwNotifyKey, |
__out LPDWORD lpdwFilterType, | | __out LPDWORD lpdwFilterType, |
|
| | __out_ecount(*lpcchName) LPWSTR lpszName, |
| | __inout LPDWORD lpcchName, |
| | __in DWORD dwMilliseconds |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_GET_CLUSTER_NOTIFY)( |
| | __in HCHANGE hChange, |
| | __out DWORD_PTR *lpdwNotifyKey, |
| | __out LPDWORD lpdwFilterType, |
__out_ecount_part_opt(*lpcchName, *lpcchName + 1) LPWSTR lpszName, | | __out_ecount_part_opt(*lpcchName, *lpcchName + 1) LPWSTR lpszName, |
__inout LPDWORD lpcchName, | | __inout LPDWORD lpcchName, |
__in DWORD dwMilliseconds | | __in DWORD dwMilliseconds |
); | | ); |
| | |
BOOL | | BOOL |
WINAPI | | WINAPI |
CloseClusterNotifyPort( | | CloseClusterNotifyPort( |
|
IN HCHANGE hChange | | __in HCHANGE hChange |
); | | ); |
|
| | |
| | typedef BOOL |
| | (WINAPI * PCLUSAPI_CLOSE_CLUSTER_NOTIFY_PORT)( |
| | __in HCHANGE hChange |
| | ); |
| | |
#endif // MIDL_PASS | | #endif // MIDL_PASS |
| | |
// | | // |
// Enumeration routines | | // Enumeration routines |
// | | // |
| | |
#ifndef _CLUSTER_API_TYPES_ | | #ifndef _CLUSTER_API_TYPES_ |
// | | // |
// Define enumerable types | | // Define enumerable types |
// | | // |
| | |
skipping to change at line 455 | | skipping to change at line 619 |
CLUSTER_ENUM_RESTYPE | | | CLUSTER_ENUM_RESTYPE | |
CLUSTER_ENUM_RESOURCE | | | CLUSTER_ENUM_RESOURCE | |
CLUSTER_ENUM_GROUP | | | CLUSTER_ENUM_GROUP | |
CLUSTER_ENUM_NETWORK | | | CLUSTER_ENUM_NETWORK | |
CLUSTER_ENUM_NETINTERFACE) | | CLUSTER_ENUM_NETINTERFACE) |
| | |
} CLUSTER_ENUM; | | } CLUSTER_ENUM; |
| | |
#endif // _CLUSTER_API_TYPES_ | | #endif // _CLUSTER_API_TYPES_ |
| | |
|
#ifndef MIDL_PASS | | #if ( !MIDL_PASS && !__midl ) |
HCLUSENUM | | HCLUSENUM |
WINAPI | | WINAPI |
ClusterOpenEnum( | | ClusterOpenEnum( |
|
IN HCLUSTER hCluster, | | __in HCLUSTER hCluster, |
IN DWORD dwType | | __in DWORD dwType |
| | ); |
| | |
| | typedef HCLUSENUM |
| | (WINAPI * PCLUSAPI_CLUSTER_OPEN_ENUM)( |
| | __in HCLUSTER hCluster, |
| | __in DWORD dwType |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
ClusterGetEnumCount( | | ClusterGetEnumCount( |
|
IN HCLUSENUM hEnum | | __in HCLUSENUM hEnum |
); | | ); |
| | |
|
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_CLUSTER_GET_ENUM_COUNT)( |
| | __in HCLUSENUM hEnum |
| | ); |
| | |
| | __success(return == ERROR_SUCCESS) |
DWORD | | DWORD |
WINAPI | | WINAPI |
ClusterEnum( | | ClusterEnum( |
__in HCLUSENUM hEnum, | | __in HCLUSENUM hEnum, |
__in DWORD dwIndex, | | __in DWORD dwIndex, |
__out LPDWORD lpdwType, | | __out LPDWORD lpdwType, |
__out_ecount_part(*lpcchName, *lpcchName + 1) LPWSTR lpszName, | | __out_ecount_part(*lpcchName, *lpcchName + 1) LPWSTR lpszName, |
__inout LPDWORD lpcchName | | __inout LPDWORD lpcchName |
); | | ); |
| | |
|
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_CLUSTER_ENUM)( |
| | __in HCLUSENUM hEnum, |
| | __in DWORD dwIndex, |
| | __out LPDWORD lpdwType, |
| | __out_ecount_part(*lpcchName, *lpcchName + 1) LPWSTR lpszName, |
| | __inout LPDWORD lpcchName |
| | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
ClusterCloseEnum( | | ClusterCloseEnum( |
|
IN HCLUSENUM hEnum | | __in HCLUSENUM hEnum |
); | | ); |
|
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_CLUSTER_CLOSE_ENUM)( |
| | __in HCLUSENUM hEnum |
| | ); |
| | |
#endif // MIDL_PASS | | #endif // MIDL_PASS |
| | |
#ifndef _CLUSTER_API_TYPES_ | | #ifndef _CLUSTER_API_TYPES_ |
// | | // |
// Define enumerable node types | | // Define enumerable node types |
// | | // |
typedef enum CLUSTER_NODE_ENUM { | | typedef enum CLUSTER_NODE_ENUM { |
CLUSTER_NODE_ENUM_NETINTERFACES = 0x00000001, | | CLUSTER_NODE_ENUM_NETINTERFACES = 0x00000001, |
| | |
CLUSTER_NODE_ENUM_ALL = (CLUSTER_NODE_ENUM_NETINTERFACES) | | CLUSTER_NODE_ENUM_ALL = (CLUSTER_NODE_ENUM_NETINTERFACES) |
| | |
skipping to change at line 514 | | skipping to change at line 705 |
ClusterNodePaused, | | ClusterNodePaused, |
ClusterNodeJoining | | ClusterNodeJoining |
} CLUSTER_NODE_STATE; | | } CLUSTER_NODE_STATE; |
| | |
#endif // _CLUSTER_API_TYPES_ | | #endif // _CLUSTER_API_TYPES_ |
| | |
// | | // |
// Interfaces for managing the nodes of a cluster. | | // Interfaces for managing the nodes of a cluster. |
// | | // |
| | |
|
#ifndef MIDL_PASS | | #if ( !MIDL_PASS && !__midl ) |
HNODE | | HNODE |
WINAPI | | WINAPI |
OpenClusterNode( | | OpenClusterNode( |
|
IN HCLUSTER hCluster, | | __in HCLUSTER hCluster, |
IN LPCWSTR lpszNodeName | | __in LPCWSTR lpszNodeName |
| | ); |
| | |
| | typedef HNODE |
| | (WINAPI * PCLUSAPI_OPEN_CLUSTER_NODE)( |
| | __in HCLUSTER hCluster, |
| | __in LPCWSTR lpszNodeName |
); | | ); |
| | |
BOOL | | BOOL |
WINAPI | | WINAPI |
CloseClusterNode( | | CloseClusterNode( |
|
IN HNODE hNode | | __in HNODE hNode |
| | ); |
| | |
| | typedef BOOL |
| | (WINAPI * PCLUSAPI_CLOSE_CLUSTER_NODE)( |
| | __in HNODE hNode |
); | | ); |
| | |
CLUSTER_NODE_STATE | | CLUSTER_NODE_STATE |
WINAPI | | WINAPI |
GetClusterNodeState( | | GetClusterNodeState( |
|
IN HNODE hNode | | __in HNODE hNode |
| | ); |
| | |
| | typedef CLUSTER_NODE_STATE |
| | (WINAPI * PCLUSAPI_GET_CLUSTER_NODE_STATE)( |
| | __in HNODE hNode |
); | | ); |
| | |
|
| | __success(return == ERROR_SUCCESS) |
DWORD | | DWORD |
WINAPI | | WINAPI |
GetClusterNodeId( | | GetClusterNodeId( |
__in HNODE hNode, | | __in HNODE hNode, |
__out_ecount_part(*lpcchName, *lpcchName + 1) LPWSTR lpszNodeId, | | __out_ecount_part(*lpcchName, *lpcchName + 1) LPWSTR lpszNodeId, |
__inout LPDWORD lpcchName | | __inout LPDWORD lpcchName |
); | | ); |
| | |
|
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_GET_CLUSTER_NODE_ID)( |
| | __in HNODE hNode, |
| | __out_ecount_part(*lpcchName, *lpcchName + 1) LPWSTR lpszNodeId, |
| | __inout LPDWORD lpcchName |
| | ); |
| | |
#define GetCurrentClusterNodeId(_lpszNodeId_, _lpcchName_) \ | | #define GetCurrentClusterNodeId(_lpszNodeId_, _lpcchName_) \ |
GetClusterNodeId(NULL, (_lpszNodeId_), (_lpcchName_)) | | GetClusterNodeId(NULL, (_lpszNodeId_), (_lpcchName_)) |
| | |
HCLUSTER | | HCLUSTER |
WINAPI | | WINAPI |
GetClusterFromNode( | | GetClusterFromNode( |
|
IN HNODE hNode | | __in HNODE hNode |
| | ); |
| | |
| | typedef HCLUSTER |
| | (WINAPI * PCLUSAPI_GET_CLUSTER_FROM_NODE)( |
| | __in HNODE hNode |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
PauseClusterNode( | | PauseClusterNode( |
|
IN HNODE hNode | | __in HNODE hNode |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_PAUSE_CLUSTER_NODE)( |
| | __in HNODE hNode |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
ResumeClusterNode( | | ResumeClusterNode( |
|
IN HNODE hNode | | __in HNODE hNode |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_RESUME_CLUSTER_NODE)( |
| | __in HNODE hNode |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
EvictClusterNode( | | EvictClusterNode( |
|
IN HNODE hNode | | __in HNODE hNode |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_EVICT_CLUSTER_NODE)( |
| | __in HNODE hNode |
); | | ); |
| | |
HNODEENUM | | HNODEENUM |
WINAPI | | WINAPI |
ClusterNodeOpenEnum( | | ClusterNodeOpenEnum( |
|
IN HNODE hNode, | | __in HNODE hNode, |
IN DWORD dwType | | __in DWORD dwType |
| | ); |
| | |
| | typedef HNODEENUM |
| | (WINAPI * PCLUSAPI_CLUSTER_NODE_OPEN_ENUM)( |
| | __in HNODE hNode, |
| | __in DWORD dwType |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
ClusterNodeGetEnumCount( | | ClusterNodeGetEnumCount( |
|
IN HNODEENUM hNodeEnum | | __in HNODEENUM hNodeEnum |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_CLUSTER_NODE_GET_ENUM_COUNT)( |
| | __in HNODEENUM hNodeEnum |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
ClusterNodeCloseEnum( | | ClusterNodeCloseEnum( |
|
IN HNODEENUM hNodeEnum | | __in HNODEENUM hNodeEnum |
); | | ); |
| | |
|
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_CLUSTER_NODE_CLOSE_ENUM)( |
| | __in HNODEENUM hNodeEnum |
| | ); |
| | |
| | __success(return == ERROR_SUCCESS) |
DWORD | | DWORD |
WINAPI | | WINAPI |
ClusterNodeEnum( | | ClusterNodeEnum( |
__in HNODEENUM hNodeEnum, | | __in HNODEENUM hNodeEnum, |
__in DWORD dwIndex, | | __in DWORD dwIndex, |
__out LPDWORD lpdwType, | | __out LPDWORD lpdwType, |
__out_ecount_part(*lpcchName, *lpcchName + 1) LPWSTR lpszName, | | __out_ecount_part(*lpcchName, *lpcchName + 1) LPWSTR lpszName, |
__inout LPDWORD lpcchName | | __inout LPDWORD lpcchName |
); | | ); |
| | |
|
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_CLUSTER_NODE_ENUM)( |
| | __in HNODEENUM hNodeEnum, |
| | __in DWORD dwIndex, |
| | __out LPDWORD lpdwType, |
| | __out_ecount_part(*lpcchName, *lpcchName + 1) LPWSTR lpszName, |
| | __inout LPDWORD lpcchName |
| | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
EvictClusterNodeEx( | | EvictClusterNodeEx( |
|
IN HNODE hNode, | | __in HNODE hNode, |
IN DWORD dwTimeOut, | | __in DWORD dwTimeOut, |
OUT HRESULT* phrCleanupStatus | | __out HRESULT * phrCleanupStatus |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_EVICT_CLUSTER_NODE_EX)( |
| | __in HNODE hNode, |
| | __in DWORD dwTimeOut, |
| | __out HRESULT * phrCleanupStatus |
); | | ); |
| | |
#endif // MIDL_PASS | | #endif // MIDL_PASS |
| | |
// | | // |
// Interfaces for managing the resource types in a cluster | | // Interfaces for managing the resource types in a cluster |
// | | // |
| | |
|
#ifndef MIDL_PASS | | #if ( !MIDL_PASS && !__midl ) |
HKEY | | HKEY |
WINAPI | | WINAPI |
GetClusterResourceTypeKey( | | GetClusterResourceTypeKey( |
|
IN HCLUSTER hCluster, | | __in HCLUSTER hCluster, |
IN LPCWSTR lpszTypeName, | | __in LPCWSTR lpszTypeName, |
IN REGSAM samDesired | | __in REGSAM samDesired |
); | | ); |
|
| | |
| | typedef HKEY |
| | (WINAPI * PCLUSAPI_GET_CLUSTER_RESOURCE_TYPE_KEY)( |
| | __in HCLUSTER hCluster, |
| | __in LPCWSTR lpszTypeName, |
| | __in REGSAM samDesired |
| | ); |
| | |
#endif // MIDL_PASS | | #endif // MIDL_PASS |
| | |
#ifndef _CLUSTER_API_TYPES_ | | #ifndef _CLUSTER_API_TYPES_ |
// | | // |
// Define enumerable group types | | // Define enumerable group types |
// | | // |
typedef enum CLUSTER_GROUP_ENUM { | | typedef enum CLUSTER_GROUP_ENUM { |
CLUSTER_GROUP_ENUM_CONTAINS = 0x00000001, | | CLUSTER_GROUP_ENUM_CONTAINS = 0x00000001, |
CLUSTER_GROUP_ENUM_NODES = 0x00000002, | | CLUSTER_GROUP_ENUM_NODES = 0x00000002, |
| | |
| | |
skipping to change at line 655 | | skipping to change at line 931 |
| | |
typedef enum CLUSTER_GROUP_AUTOFAILBACK_TYPE | | typedef enum CLUSTER_GROUP_AUTOFAILBACK_TYPE |
{ | | { |
ClusterGroupPreventFailback = 0, | | ClusterGroupPreventFailback = 0, |
ClusterGroupAllowFailback, | | ClusterGroupAllowFailback, |
ClusterGroupFailbackTypeCount | | ClusterGroupFailbackTypeCount |
} CLUSTER_GROUP_AUTOFAILBACK_TYPE, CGAFT; | | } CLUSTER_GROUP_AUTOFAILBACK_TYPE, CGAFT; |
| | |
#endif // _CLUSTER_API_TYPES_ | | #endif // _CLUSTER_API_TYPES_ |
| | |
|
#ifndef MIDL_PASS | | #if ( !MIDL_PASS && !__midl ) |
HGROUP | | HGROUP |
WINAPI | | WINAPI |
CreateClusterGroup( | | CreateClusterGroup( |
|
IN HCLUSTER hCluster, | | __in HCLUSTER hCluster, |
IN LPCWSTR lpszGroupName | | __in LPCWSTR lpszGroupName |
| | ); |
| | |
| | typedef HGROUP |
| | (WINAPI * PCLUSAPI_CREATE_CLUSTER_GROUP)( |
| | __in HCLUSTER hCluster, |
| | __in LPCWSTR lpszGroupName |
); | | ); |
| | |
HGROUP | | HGROUP |
WINAPI | | WINAPI |
OpenClusterGroup( | | OpenClusterGroup( |
|
IN HCLUSTER hCluster, | | __in HCLUSTER hCluster, |
IN LPCWSTR lpszGroupName | | __in LPCWSTR lpszGroupName |
| | ); |
| | |
| | typedef HGROUP |
| | (WINAPI * PCLUSAPI_OPEN_CLUSTER_GROUP)( |
| | __in HCLUSTER hCluster, |
| | __in LPCWSTR lpszGroupName |
); | | ); |
| | |
BOOL | | BOOL |
WINAPI | | WINAPI |
CloseClusterGroup( | | CloseClusterGroup( |
|
IN HGROUP hGroup | | __in HGROUP hGroup |
| | ); |
| | |
| | typedef BOOL |
| | (WINAPI * PCLUSAPI_CLOSE_CLUSTER_GROUP)( |
| | __in HGROUP hGroup |
); | | ); |
| | |
HCLUSTER | | HCLUSTER |
WINAPI | | WINAPI |
GetClusterFromGroup( | | GetClusterFromGroup( |
|
IN HGROUP hGroup | | __in HGROUP hGroup |
); | | ); |
| | |
|
| | typedef HCLUSTER |
| | (WINAPI * PCLUSAPI_GET_CLUSTER_FROM_GROUP)( |
| | __in HGROUP hGroup |
| | ); |
| | |
| | __success(return >= 0) //!= ClusterGroupStateUnknown |
CLUSTER_GROUP_STATE | | CLUSTER_GROUP_STATE |
WINAPI | | WINAPI |
GetClusterGroupState( | | GetClusterGroupState( |
__in HGROUP hGroup, | | __in HGROUP hGroup, |
__out_ecount_part_opt(*lpcchNodeName, *lpcchNodeName + 1) LPWSTR lpszNodeNam
e, | | __out_ecount_part_opt(*lpcchNodeName, *lpcchNodeName + 1) LPWSTR lpszNodeNam
e, |
|
__inout LPDWORD lpcchNodeName | | __inout_opt LPDWORD lpcchNodeName |
| | ); |
| | |
| | typedef CLUSTER_GROUP_STATE |
| | (WINAPI * PCLUSAPI_GET_CLUSTER_GROUP_STATE)( |
| | __in HGROUP hGroup, |
| | __out_ecount_part_opt(*lpcchNodeName, *lpcchNodeName + 1) LPWSTR lpszNodeNam |
| | e, |
| | __inout_opt LPDWORD lpcchNodeName |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
SetClusterGroupName( | | SetClusterGroupName( |
|
IN HGROUP hGroup, | | __in HGROUP hGroup, |
IN LPCWSTR lpszGroupName | | __in LPCWSTR lpszGroupName |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_SET_CLUSTER_GROUP_NAME)( |
| | HGROUP hGroup, |
| | LPCWSTR lpszGroupName |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
SetClusterGroupNodeList( | | SetClusterGroupNodeList( |
|
IN HGROUP hGroup, | | __in HGROUP hGroup, |
IN DWORD NodeCount, | | __in DWORD NodeCount, |
IN HNODE NodeList[] | | __in_ecount( NodeCount ) HNODE NodeList[] |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_SET_CLUSTER_GROUP_NODE_LIST)( |
| | __in HGROUP hGroup, |
| | __in DWORD NodeCount, |
| | __in_ecount( NodeCount ) HNODE NodeList[] |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
OnlineClusterGroup( | | OnlineClusterGroup( |
|
IN HGROUP hGroup, | | __in HGROUP hGroup, |
IN OPTIONAL HNODE hDestinationNode | | __in_opt HNODE hDestinationNode |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_ONLINE_CLUSTER_GROUP)( |
| | __in HGROUP hGroup, |
| | __in_opt HNODE hDestinationNode |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
MoveClusterGroup( | | MoveClusterGroup( |
|
IN HGROUP hGroup, | | __in HGROUP hGroup, |
IN OPTIONAL HNODE hDestinationNode | | __in_opt HNODE hDestinationNode |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_MOVE_CLUSTER_GROUP)( |
| | __in HGROUP hGroup, |
| | __in_opt HNODE hDestinationNode |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
OfflineClusterGroup( | | OfflineClusterGroup( |
|
IN HGROUP hGroup | | __in HGROUP hGroup |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_OFFLINE_CLUSTER_GROUP)( |
| | HGROUP hGroup |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
DeleteClusterGroup( | | DeleteClusterGroup( |
|
IN HGROUP hGroup | | __in HGROUP hGroup |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_DELETE_CLUSTER_GROUP)( |
| | HGROUP hGroup |
); | | ); |
| | |
HGROUPENUM | | HGROUPENUM |
WINAPI | | WINAPI |
ClusterGroupOpenEnum( | | ClusterGroupOpenEnum( |
|
IN HGROUP hGroup, | | __in HGROUP hGroup, |
IN DWORD dwType | | __in DWORD dwType |
| | ); |
| | |
| | typedef HGROUPENUM |
| | (WINAPI * PCLUSAPI_CLUSTER_GROUP_OPEN_ENUM)( |
| | HGROUP hGroup, |
| | DWORD dwType |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
ClusterGroupGetEnumCount( | | ClusterGroupGetEnumCount( |
|
IN HGROUPENUM hGroupEnum | | __in HGROUPENUM hGroupEnum |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_CLUSTER_GROUP_GET_ENUM_COUNT)( |
| | __in HGROUPENUM hGroupEnum |
); | | ); |
| | |
|
| | __success(return == ERROR_SUCCESS) |
DWORD | | DWORD |
WINAPI | | WINAPI |
ClusterGroupEnum( | | ClusterGroupEnum( |
__in HGROUPENUM hGroupEnum, | | __in HGROUPENUM hGroupEnum, |
__in DWORD dwIndex, | | __in DWORD dwIndex, |
__out LPDWORD lpdwType, | | __out LPDWORD lpdwType, |
__out_ecount_part(*lpcchName, *lpcchName + 1) LPWSTR lpszResourceName, | | __out_ecount_part(*lpcchName, *lpcchName + 1) LPWSTR lpszResourceName, |
__inout LPDWORD lpcchName | | __inout LPDWORD lpcchName |
); | | ); |
| | |
|
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_CLUSTER_GROUP_ENUM)( |
| | __in HGROUPENUM hGroupEnum, |
| | __in DWORD dwIndex, |
| | __out LPDWORD lpdwType, |
| | __out_ecount_part(*lpcchName, *lpcchName + 1) LPWSTR lpszResourceName, |
| | __inout LPDWORD lpcchName |
| | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
ClusterGroupCloseEnum( | | ClusterGroupCloseEnum( |
|
IN HGROUPENUM hGroupEnum | | __in HGROUPENUM hGroupEnum |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_CLUSTER_GROUP_CLOSE_ENUM)( |
| | HGROUPENUM hGroupEnum |
); | | ); |
|
| | |
#endif // MIDL_PASS | | #endif // MIDL_PASS |
| | |
// | | // |
// Definitions used in resource management routines. | | // Definitions used in resource management routines. |
// | | // |
| | |
#ifndef _CLUSTER_API_TYPES_ | | #ifndef _CLUSTER_API_TYPES_ |
// | | // |
// Resource-related structures and types | | // Resource-related structures and types |
// | | // |
| | |
skipping to change at line 785 | | skipping to change at line 1153 |
ClusterResourceFailed, | | ClusterResourceFailed, |
ClusterResourcePending = 128, | | ClusterResourcePending = 128, |
ClusterResourceOnlinePending, | | ClusterResourceOnlinePending, |
ClusterResourceOfflinePending | | ClusterResourceOfflinePending |
} CLUSTER_RESOURCE_STATE; | | } CLUSTER_RESOURCE_STATE; |
| | |
typedef enum CLUSTER_RESOURCE_RESTART_ACTION { | | typedef enum CLUSTER_RESOURCE_RESTART_ACTION { |
ClusterResourceDontRestart = 0, | | ClusterResourceDontRestart = 0, |
ClusterResourceRestartNoNotify, | | ClusterResourceRestartNoNotify, |
ClusterResourceRestartNotify, | | ClusterResourceRestartNotify, |
|
| | ClusterResourceRestartNotifyIfNotInORexpression, |
ClusterResourceRestartActionCount | | ClusterResourceRestartActionCount |
} CLUSTER_RESOURCE_RESTART_ACTION, CRRA; | | } CLUSTER_RESOURCE_RESTART_ACTION, CRRA; |
| | |
// | | // |
// Flags for resource creation | | // Flags for resource creation |
// | | // |
typedef enum CLUSTER_RESOURCE_CREATE_FLAGS { | | typedef enum CLUSTER_RESOURCE_CREATE_FLAGS { |
CLUSTER_RESOURCE_DEFAULT_MONITOR = 0, | | CLUSTER_RESOURCE_DEFAULT_MONITOR = 0, |
CLUSTER_RESOURCE_SEPARATE_MONITOR = 1, | | CLUSTER_RESOURCE_SEPARATE_MONITOR = 1, |
CLUSTER_RESOURCE_VALID_FLAGS = CLUSTER_RESOURCE_SEPARATE_MONITOR | | CLUSTER_RESOURCE_VALID_FLAGS = CLUSTER_RESOURCE_SEPARATE_MONITOR |
} CLUSTER_RESOURCE_CREATE_FLAGS; | | } CLUSTER_RESOURCE_CREATE_FLAGS; |
| | |
#endif // _CLUSTER_API_TYPES_ | | #endif // _CLUSTER_API_TYPES_ |
| | |
// | | // |
// Interfaces for managing the resources in a cluster | | // Interfaces for managing the resources in a cluster |
// | | // |
| | |
|
#ifndef MIDL_PASS | | #if ( !MIDL_PASS && !__midl ) |
HRESOURCE | | HRESOURCE |
WINAPI | | WINAPI |
CreateClusterResource( | | CreateClusterResource( |
|
IN HGROUP hGroup, | | __in HGROUP hGroup, |
IN LPCWSTR lpszResourceName, | | __in LPCWSTR lpszResourceName, |
IN LPCWSTR lpszResourceType, | | __in LPCWSTR lpszResourceType, |
IN DWORD dwFlags | | __in DWORD dwFlags |
| | ); |
| | |
| | typedef HRESOURCE |
| | (WINAPI * PCLUSAPI_CREATE_CLUSTER_RESOURCE)( |
| | HGROUP hGroup, |
| | LPCWSTR lpszResourceName, |
| | LPCWSTR lpszResourceType, |
| | DWORD dwFlags |
); | | ); |
| | |
HRESOURCE | | HRESOURCE |
WINAPI | | WINAPI |
OpenClusterResource( | | OpenClusterResource( |
|
IN HCLUSTER hCluster, | | __in HCLUSTER hCluster, |
IN LPCWSTR lpszResourceName | | __in LPCWSTR lpszResourceName |
| | ); |
| | |
| | typedef HRESOURCE |
| | (WINAPI * PCLUSAPI_OPEN_CLUSTER_RESOURCE)( |
| | HCLUSTER hCluster, |
| | LPCWSTR lpszResourceName |
); | | ); |
| | |
BOOL | | BOOL |
WINAPI | | WINAPI |
CloseClusterResource( | | CloseClusterResource( |
|
IN HRESOURCE hResource | | __in HRESOURCE hResource |
| | ); |
| | |
| | typedef BOOL |
| | (WINAPI * PCLUSAPI_CLOSE_CLUSTER_RESOURCE)( |
| | HRESOURCE hResource |
); | | ); |
| | |
HCLUSTER | | HCLUSTER |
WINAPI | | WINAPI |
GetClusterFromResource( | | GetClusterFromResource( |
|
IN HRESOURCE hResource | | __in HRESOURCE hResource |
| | ); |
| | |
| | typedef HCLUSTER |
| | (WINAPI * PCLUSAPI_GET_CLUSTER_FROM_RESOURCE)( |
| | __in HRESOURCE hResource |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
DeleteClusterResource( | | DeleteClusterResource( |
|
IN HRESOURCE hResource | | __in HRESOURCE hResource |
); | | ); |
| | |
|
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_DELETE_CLUSTER_RESOURCE)( |
| | HRESOURCE hResource |
| | ); |
| | |
| | __success(return >= 0) // != ClusterResourceStateUnknown |
CLUSTER_RESOURCE_STATE | | CLUSTER_RESOURCE_STATE |
WINAPI | | WINAPI |
GetClusterResourceState( | | GetClusterResourceState( |
__in HRESOURCE hResource, | | __in HRESOURCE hResource, |
__out_ecount_part_opt(*lpcchNodeName, *lpcchNodeName + 1) LPWSTR lpszNodeNam
e, | | __out_ecount_part_opt(*lpcchNodeName, *lpcchNodeName + 1) LPWSTR lpszNodeNam
e, |
|
__inout LPDWORD lpcchNodeName, | | __inout_opt LPDWORD lpcchNodeName, |
__out_ecount_part_opt(*lpcchGroupName, *lpcchGroupName + 1) LPWSTR lpszGroup
Name, | | __out_ecount_part_opt(*lpcchGroupName, *lpcchGroupName + 1) LPWSTR lpszGroup
Name, |
|
__inout LPDWORD lpcchGroupName | | __inout_opt LPDWORD lpcchGroupName |
| | ); |
| | |
| | typedef CLUSTER_RESOURCE_STATE |
| | (WINAPI * PCLUSAPI_GET_CLUSTER_RESOURCE_STATE)( |
| | __in HRESOURCE hResource, |
| | __out_ecount_part_opt(*lpcchNodeName, *lpcchNodeName + 1) LPWSTR lpszNodeNam |
| | e, |
| | __inout_opt LPDWORD lpcchNodeName, |
| | __out_ecount_part_opt(*lpcchGroupName, *lpcchGroupName + 1) LPWSTR lpszGroup |
| | Name, |
| | __inout_opt LPDWORD lpcchGroupName |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
SetClusterResourceName( | | SetClusterResourceName( |
|
IN HRESOURCE hResource, | | __in HRESOURCE hResource, |
IN LPCWSTR lpszResourceName | | __in LPCWSTR lpszResourceName |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_SET_CLUSTER_RESOURCE_NAME)( |
| | HRESOURCE hResource, |
| | LPCWSTR lpszResourceName |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
FailClusterResource( | | FailClusterResource( |
|
IN HRESOURCE hResource | | __in HRESOURCE hResource |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_FAIL_CLUSTER_RESOURCE)( |
| | HRESOURCE hResource |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
OnlineClusterResource( | | OnlineClusterResource( |
|
IN HRESOURCE hResource | | __in HRESOURCE hResource |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_ONLINE_CLUSTER_RESOURCE)( |
| | HRESOURCE hResource |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
OfflineClusterResource( | | OfflineClusterResource( |
|
IN HRESOURCE hResource | | __in HRESOURCE hResource |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_OFFLINE_CLUSTER_RESOURCE)( |
| | HRESOURCE hResource |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
ChangeClusterResourceGroup( | | ChangeClusterResourceGroup( |
|
IN HRESOURCE hResource, | | __in HRESOURCE hResource, |
IN HGROUP hGroup | | __in HGROUP hGroup |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_CHANGE_CLUSTER_RESOURCE_GROUP)( |
| | HRESOURCE hResource, |
| | HGROUP hGroup |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
AddClusterResourceNode( | | AddClusterResourceNode( |
|
IN HRESOURCE hResource, | | __in HRESOURCE hResource, |
IN HNODE hNode | | __in HNODE hNode |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_ADD_CLUSTER_RESOURCE_NODE)( |
| | HRESOURCE hResource, |
| | HNODE hNode |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
RemoveClusterResourceNode( | | RemoveClusterResourceNode( |
|
IN HRESOURCE hResource, | | __in HRESOURCE hResource, |
IN HNODE hNode | | __in HNODE hNode |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_REMOVE_CLUSTER_RESOURCE_NODE)( |
| | HRESOURCE hResource, |
| | HNODE hNode |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
AddClusterResourceDependency( | | AddClusterResourceDependency( |
|
IN HRESOURCE hResource, | | __in HRESOURCE hResource, |
IN HRESOURCE hDependsOn | | __in HRESOURCE hDependsOn |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_ADD_CLUSTER_RESOURCE_DEPENDENCY)( |
| | HRESOURCE hResource, |
| | HRESOURCE hDependsOn |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
RemoveClusterResourceDependency( | | RemoveClusterResourceDependency( |
|
IN HRESOURCE hResource, | | __in HRESOURCE hResource, |
IN HRESOURCE hDependsOn | | __in HRESOURCE hDependsOn |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_REMOVE_CLUSTER_RESOURCE_DEPENDENCY)( |
| | HRESOURCE hResource, |
| | HRESOURCE hDependsOn |
| | ); |
| | |
| | DWORD |
| | WINAPI |
| | SetClusterResourceDependencyExpression( |
| | __in HRESOURCE hResource, |
| | __in LPCWSTR lpszDependencyExpression |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_SET_CLUSTER_RESOURCE_DEPENDENCY_EXPRESSION)( |
| | __in HRESOURCE hResource, |
| | __in LPCWSTR lpszDependencyExpression |
| | ); |
| | |
| | __success(return == ERROR_SUCCESS) |
| | DWORD |
| | WINAPI |
| | GetClusterResourceDependencyExpression( |
| | __in HRESOURCE hResource, |
| | __out_ecount_part_opt(*lpcchDependencyExpression, *lpcchDependencyExpression |
| | + 1) |
| | LPWSTR lpszDependencyExpression, |
| | __inout LPDWORD lpcchDependencyExpression |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_GET_CLUSTER_RESOURCE_DEPENDENCY_EXPRESSION)( |
| | __in HRESOURCE hResource, |
| | __out_ecount_part_opt(*lpcchDependencyExpression, *lpcchDependencyExpression |
| | + 1) |
| | LPWSTR lpszDependencyExpression, |
| | __inout LPDWORD lpcchDependencyExpression |
); | | ); |
| | |
BOOL | | BOOL |
WINAPI | | WINAPI |
CanResourceBeDependent( | | CanResourceBeDependent( |
|
IN HRESOURCE hResource, | | __in HRESOURCE hResource, |
IN HRESOURCE hResourceDependent | | __in HRESOURCE hResourceDependent |
); | | ); |
| | |
|
| | typedef BOOL |
| | (WINAPI * PCLUSAPI_CAN_RESOURCE_BE_DEPENDENT)( |
| | HRESOURCE hResource, |
| | HRESOURCE hResourceDependent |
| | ); |
| | |
| | __success(return == ERROR_SUCCESS) |
DWORD | | DWORD |
WINAPI | | WINAPI |
ClusterResourceControl( | | ClusterResourceControl( |
__in HRESOURCE hResource, | | __in HRESOURCE hResource, |
__in_opt HNODE hHostNode, | | __in_opt HNODE hHostNode, |
__in DWORD dwControlCode, | | __in DWORD dwControlCode, |
__in_bcount_opt(cbInBufferSize) LPVOID lpInBuffer, | | __in_bcount_opt(cbInBufferSize) LPVOID lpInBuffer, |
__in DWORD cbInBufferSize, | | __in DWORD cbInBufferSize, |
__out_bcount_part_opt(cbOutBufferSize, *lpBytesReturned) LPVOID lpOutBuffer, | | __out_bcount_part_opt(cbOutBufferSize, *lpBytesReturned) LPVOID lpOutBuffer, |
__in DWORD cbOutBufferSize, | | __in DWORD cbOutBufferSize, |
|
__out LPDWORD lpBytesReturned | | __out_opt LPDWORD lpBytesReturned |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_CLUSTER_RESOURCE_CONTROL)( |
| | __in HRESOURCE hResource, |
| | __in_opt HNODE hHostNode, |
| | __in DWORD dwControlCode, |
| | __in_bcount_opt(cbInBufferSize) LPVOID lpInBuffer, |
| | __in DWORD cbInBufferSize, |
| | __out_bcount_part_opt(cbOutBufferSize, *lpBytesReturned) LPVOID lpOutBuffer, |
| | __in DWORD cbOutBufferSize, |
| | __out_opt LPDWORD lpBytesReturned |
); | | ); |
| | |
|
| | __success(return == ERROR_SUCCESS) |
DWORD | | DWORD |
WINAPI | | WINAPI |
ClusterResourceTypeControl( | | ClusterResourceTypeControl( |
__in HCLUSTER hCluster, | | __in HCLUSTER hCluster, |
__in LPCWSTR lpszResourceTypeName, | | __in LPCWSTR lpszResourceTypeName, |
__in_opt HNODE hHostNode, | | __in_opt HNODE hHostNode, |
__in DWORD dwControlCode, | | __in DWORD dwControlCode, |
__in_bcount_opt(nInBufferSize) LPVOID lpInBuffer, | | __in_bcount_opt(nInBufferSize) LPVOID lpInBuffer, |
__in DWORD nInBufferSize, | | __in DWORD nInBufferSize, |
__out_bcount_part_opt(nOutBufferSize, *lpBytesReturned) LPVOID lpOutBuffer, | | __out_bcount_part_opt(nOutBufferSize, *lpBytesReturned) LPVOID lpOutBuffer, |
__in DWORD nOutBufferSize, | | __in DWORD nOutBufferSize, |
|
__out LPDWORD lpBytesReturned | | __out_opt LPDWORD lpBytesReturned |
); | | ); |
| | |
|
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_CLUSTER_RESOURCE_TYPE_CONTROL)( |
| | __in HCLUSTER hCluster, |
| | __in LPCWSTR lpszResourceTypeName, |
| | __in_opt HNODE hHostNode, |
| | __in DWORD dwControlCode, |
| | __in_bcount_opt(nInBufferSize) LPVOID lpInBuffer, |
| | __in DWORD nInBufferSize, |
| | __out_bcount_part_opt(nOutBufferSize, *lpBytesReturned) LPVOID lpOutBuffer, |
| | __in DWORD nOutBufferSize, |
| | __out_opt LPDWORD lpBytesReturned |
| | ); |
| | |
| | __success(return == ERROR_SUCCESS) |
DWORD | | DWORD |
WINAPI | | WINAPI |
ClusterGroupControl( | | ClusterGroupControl( |
__in HGROUP hGroup, | | __in HGROUP hGroup, |
__in_opt HNODE hHostNode, | | __in_opt HNODE hHostNode, |
__in DWORD dwControlCode, | | __in DWORD dwControlCode, |
__in_bcount_opt(nInBufferSize) LPVOID lpInBuffer, | | __in_bcount_opt(nInBufferSize) LPVOID lpInBuffer, |
__in DWORD nInBufferSize, | | __in DWORD nInBufferSize, |
__out_bcount_part_opt(nOutBufferSize, *lpBytesReturned) LPVOID lpOutBuffer, | | __out_bcount_part_opt(nOutBufferSize, *lpBytesReturned) LPVOID lpOutBuffer, |
__in DWORD nOutBufferSize, | | __in DWORD nOutBufferSize, |
|
__out LPDWORD lpBytesReturned | | __out_opt LPDWORD lpBytesReturned |
); | | ); |
| | |
|
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_CLUSTER_GROUP_CONTROL)( |
| | __in HGROUP hGroup, |
| | __in_opt HNODE hHostNode, |
| | __in DWORD dwControlCode, |
| | __in_bcount_opt(nInBufferSize) LPVOID lpInBuffer, |
| | __in DWORD nInBufferSize, |
| | __out_bcount_part_opt(nOutBufferSize, *lpBytesReturned) LPVOID lpOutBuffer, |
| | __in DWORD nOutBufferSize, |
| | __out_opt LPDWORD lpBytesReturned |
| | ); |
| | |
| | __success(return == ERROR_SUCCESS) |
DWORD | | DWORD |
WINAPI | | WINAPI |
ClusterNodeControl( | | ClusterNodeControl( |
__in HNODE hNode, | | __in HNODE hNode, |
__in_opt HNODE hHostNode, | | __in_opt HNODE hHostNode, |
__in DWORD dwControlCode, | | __in DWORD dwControlCode, |
__in_bcount_opt(nInBufferSize) LPVOID lpInBuffer, | | __in_bcount_opt(nInBufferSize) LPVOID lpInBuffer, |
__in DWORD nInBufferSize, | | __in DWORD nInBufferSize, |
__out_bcount_part_opt(nOutBufferSize, *lpBytesReturned) LPVOID lpOutBuffer, | | __out_bcount_part_opt(nOutBufferSize, *lpBytesReturned) LPVOID lpOutBuffer, |
__in DWORD nOutBufferSize, | | __in DWORD nOutBufferSize, |
|
__out LPDWORD lpBytesReturned | | __out_opt LPDWORD lpBytesReturned |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_CLUSTER_NODE_CONTROL)( |
| | __in HNODE hNode, |
| | __in_opt HNODE hHostNode, |
| | __in DWORD dwControlCode, |
| | __in_bcount_opt(nInBufferSize) LPVOID lpInBuffer, |
| | __in DWORD nInBufferSize, |
| | __out_bcount_part_opt(nOutBufferSize, *lpBytesReturned) LPVOID lpOutBuffer, |
| | __in DWORD nOutBufferSize, |
| | __out_opt LPDWORD lpBytesReturned |
); | | ); |
| | |
BOOL | | BOOL |
WINAPI | | WINAPI |
GetClusterResourceNetworkName( | | GetClusterResourceNetworkName( |
__in HRESOURCE hResource, | | __in HRESOURCE hResource, |
__out_ecount_part(*nSize, *nSize + 1) LPWSTR lpBuffer, | | __out_ecount_part(*nSize, *nSize + 1) LPWSTR lpBuffer, |
__inout LPDWORD nSize | | __inout LPDWORD nSize |
); | | ); |
| | |
|
| | typedef BOOL |
| | (WINAPI * PCLUSAPI_GET_CLUSTER_RESOURCE_NETWORK_NAME)( |
| | __in HRESOURCE hResource, |
| | __out_ecount_part(*nSize, *nSize + 1) LPWSTR lpBuffer, |
| | __inout LPDWORD nSize |
| | ); |
| | |
#endif // MIDL_PASS | | #endif // MIDL_PASS |
| | |
// | | // |
// Cluster control properties | | // Cluster control properties |
// | | // |
| | |
#ifndef _CLUSTER_API_TYPES_ | | #ifndef _CLUSTER_API_TYPES_ |
// | | // |
// Cluster Control Property Data - Types (a WORD) | | // Cluster Control Property Data - Types (a WORD) |
// | | // |
| | |
skipping to change at line 999 | | skipping to change at line 1555 |
CLUSPROP_TYPE_LIST_VALUE, | | CLUSPROP_TYPE_LIST_VALUE, |
CLUSPROP_TYPE_RESCLASS, | | CLUSPROP_TYPE_RESCLASS, |
CLUSPROP_TYPE_RESERVED1, | | CLUSPROP_TYPE_RESERVED1, |
CLUSPROP_TYPE_NAME, | | CLUSPROP_TYPE_NAME, |
CLUSPROP_TYPE_SIGNATURE, | | CLUSPROP_TYPE_SIGNATURE, |
CLUSPROP_TYPE_SCSI_ADDRESS, | | CLUSPROP_TYPE_SCSI_ADDRESS, |
CLUSPROP_TYPE_DISK_NUMBER, | | CLUSPROP_TYPE_DISK_NUMBER, |
CLUSPROP_TYPE_PARTITION_INFO, | | CLUSPROP_TYPE_PARTITION_INFO, |
CLUSPROP_TYPE_FTSET_INFO, | | CLUSPROP_TYPE_FTSET_INFO, |
CLUSPROP_TYPE_DISK_SERIALNUMBER, | | CLUSPROP_TYPE_DISK_SERIALNUMBER, |
|
| | CLUSPROP_TYPE_DISK_GUID, |
| | CLUSPROP_TYPE_DISK_SIZE, |
| | CLUSPROP_TYPE_PARTITION_INFO_EX, |
CLUSPROP_TYPE_USER=32768 | | CLUSPROP_TYPE_USER=32768 |
} CLUSTER_PROPERTY_TYPE; | | } CLUSTER_PROPERTY_TYPE; |
| | |
// | | // |
// Cluster Control Property Data - Formats (a WORD) | | // Cluster Control Property Data - Formats (a WORD) |
// | | // |
typedef enum CLUSTER_PROPERTY_FORMAT { | | typedef enum CLUSTER_PROPERTY_FORMAT { |
CLUSPROP_FORMAT_UNKNOWN = 0, | | CLUSPROP_FORMAT_UNKNOWN = 0, |
CLUSPROP_FORMAT_BINARY, | | CLUSPROP_FORMAT_BINARY, |
CLUSPROP_FORMAT_DWORD, | | CLUSPROP_FORMAT_DWORD, |
CLUSPROP_FORMAT_SZ, | | CLUSPROP_FORMAT_SZ, |
CLUSPROP_FORMAT_EXPAND_SZ, | | CLUSPROP_FORMAT_EXPAND_SZ, |
CLUSPROP_FORMAT_MULTI_SZ, | | CLUSPROP_FORMAT_MULTI_SZ, |
CLUSPROP_FORMAT_ULARGE_INTEGER, | | CLUSPROP_FORMAT_ULARGE_INTEGER, |
CLUSPROP_FORMAT_LONG, | | CLUSPROP_FORMAT_LONG, |
CLUSPROP_FORMAT_EXPANDED_SZ, | | CLUSPROP_FORMAT_EXPANDED_SZ, |
CLUSPROP_FORMAT_SECURITY_DESCRIPTOR, | | CLUSPROP_FORMAT_SECURITY_DESCRIPTOR, |
CLUSPROP_FORMAT_LARGE_INTEGER, | | CLUSPROP_FORMAT_LARGE_INTEGER, |
CLUSPROP_FORMAT_WORD, | | CLUSPROP_FORMAT_WORD, |
|
| | CLUSPROP_FORMAT_FILETIME, |
CLUSPROP_FORMAT_USER=32768 | | CLUSPROP_FORMAT_USER=32768 |
} CLUSTER_PROPERTY_FORMAT; | | } CLUSTER_PROPERTY_FORMAT; |
| | |
#endif // _CLUSTER_API_TYPES_ | | #endif // _CLUSTER_API_TYPES_ |
| | |
// | | // |
// Cluster Control Property Data - Syntax | | // Cluster Control Property Data - Syntax |
// | | // |
#define CLUSPROP_SYNTAX_VALUE( type, format ) ((DWORD) ((type << 16) | format)) | | #define CLUSPROP_SYNTAX_VALUE( type, format ) ((DWORD) ((type << 16) | format)) |
| | |
| | |
skipping to change at line 1046 | | skipping to change at line 1606 |
CLUSPROP_SYNTAX_LIST_VALUE_SZ = CLUSPROP_SYNTAX_VALUE( CLU
SPROP_TYPE_LIST_VALUE, CLUSPROP_FORMAT_SZ ), | | CLUSPROP_SYNTAX_LIST_VALUE_SZ = CLUSPROP_SYNTAX_VALUE( CLU
SPROP_TYPE_LIST_VALUE, CLUSPROP_FORMAT_SZ ), |
CLUSPROP_SYNTAX_LIST_VALUE_EXPAND_SZ = CLUSPROP_SYNTAX_VALUE( CLU
SPROP_TYPE_LIST_VALUE, CLUSPROP_FORMAT_EXPAND_SZ ), | | CLUSPROP_SYNTAX_LIST_VALUE_EXPAND_SZ = CLUSPROP_SYNTAX_VALUE( CLU
SPROP_TYPE_LIST_VALUE, CLUSPROP_FORMAT_EXPAND_SZ ), |
CLUSPROP_SYNTAX_LIST_VALUE_DWORD = CLUSPROP_SYNTAX_VALUE( CLU
SPROP_TYPE_LIST_VALUE, CLUSPROP_FORMAT_DWORD ), | | CLUSPROP_SYNTAX_LIST_VALUE_DWORD = CLUSPROP_SYNTAX_VALUE( CLU
SPROP_TYPE_LIST_VALUE, CLUSPROP_FORMAT_DWORD ), |
CLUSPROP_SYNTAX_LIST_VALUE_BINARY = CLUSPROP_SYNTAX_VALUE( CLU
SPROP_TYPE_LIST_VALUE, CLUSPROP_FORMAT_BINARY ), | | CLUSPROP_SYNTAX_LIST_VALUE_BINARY = CLUSPROP_SYNTAX_VALUE( CLU
SPROP_TYPE_LIST_VALUE, CLUSPROP_FORMAT_BINARY ), |
CLUSPROP_SYNTAX_LIST_VALUE_MULTI_SZ = CLUSPROP_SYNTAX_VALUE( CLU
SPROP_TYPE_LIST_VALUE, CLUSPROP_FORMAT_MULTI_SZ ), | | CLUSPROP_SYNTAX_LIST_VALUE_MULTI_SZ = CLUSPROP_SYNTAX_VALUE( CLU
SPROP_TYPE_LIST_VALUE, CLUSPROP_FORMAT_MULTI_SZ ), |
CLUSPROP_SYNTAX_LIST_VALUE_LONG = CLUSPROP_SYNTAX_VALUE( CLU
SPROP_TYPE_LIST_VALUE, CLUSPROP_FORMAT_LONG ), | | CLUSPROP_SYNTAX_LIST_VALUE_LONG = CLUSPROP_SYNTAX_VALUE( CLU
SPROP_TYPE_LIST_VALUE, CLUSPROP_FORMAT_LONG ), |
CLUSPROP_SYNTAX_LIST_VALUE_EXPANDED_SZ = CLUSPROP_SYNTAX_VALUE( CLU
SPROP_TYPE_LIST_VALUE, CLUSPROP_FORMAT_EXPANDED_SZ ), | | CLUSPROP_SYNTAX_LIST_VALUE_EXPANDED_SZ = CLUSPROP_SYNTAX_VALUE( CLU
SPROP_TYPE_LIST_VALUE, CLUSPROP_FORMAT_EXPANDED_SZ ), |
CLUSPROP_SYNTAX_LIST_VALUE_SECURITY_DESCRIPTOR = CLUSPROP_SYNTAX_VALUE( CLU
SPROP_TYPE_LIST_VALUE, CLUSPROP_FORMAT_SECURITY_DESCRIPTOR ), | | CLUSPROP_SYNTAX_LIST_VALUE_SECURITY_DESCRIPTOR = CLUSPROP_SYNTAX_VALUE( CLU
SPROP_TYPE_LIST_VALUE, CLUSPROP_FORMAT_SECURITY_DESCRIPTOR ), |
CLUSPROP_SYNTAX_LIST_VALUE_LARGE_INTEGER = CLUSPROP_SYNTAX_VALUE( CLU
SPROP_TYPE_LIST_VALUE, CLUSPROP_FORMAT_LARGE_INTEGER ), | | CLUSPROP_SYNTAX_LIST_VALUE_LARGE_INTEGER = CLUSPROP_SYNTAX_VALUE( CLU
SPROP_TYPE_LIST_VALUE, CLUSPROP_FORMAT_LARGE_INTEGER ), |
CLUSPROP_SYNTAX_LIST_VALUE_ULARGE_INTEGER = CLUSPROP_SYNTAX_VALUE( CLU
SPROP_TYPE_LIST_VALUE, CLUSPROP_FORMAT_ULARGE_INTEGER ), | | CLUSPROP_SYNTAX_LIST_VALUE_ULARGE_INTEGER = CLUSPROP_SYNTAX_VALUE( CLU
SPROP_TYPE_LIST_VALUE, CLUSPROP_FORMAT_ULARGE_INTEGER ), |
|
| | CLUSPROP_SYNTAX_LIST_VALUE_WORD = CLUSPROP_SYNTAX_VALUE( CLU
SPROP_TYPE_LIST_VALUE, CLUSPROP_FORMAT_WORD ), |
| | |
// Storage syntax values | | // Storage syntax values |
| | |
CLUSPROP_SYNTAX_DISK_SIGNATURE = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_S
IGNATURE, CLUSPROP_FORMAT_DWORD ), | | CLUSPROP_SYNTAX_DISK_SIGNATURE = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_S
IGNATURE, CLUSPROP_FORMAT_DWORD ), |
CLUSPROP_SYNTAX_SCSI_ADDRESS = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_S
CSI_ADDRESS, CLUSPROP_FORMAT_DWORD ), | | CLUSPROP_SYNTAX_SCSI_ADDRESS = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_S
CSI_ADDRESS, CLUSPROP_FORMAT_DWORD ), |
CLUSPROP_SYNTAX_DISK_NUMBER = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_D
ISK_NUMBER, CLUSPROP_FORMAT_DWORD ), | | CLUSPROP_SYNTAX_DISK_NUMBER = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_D
ISK_NUMBER, CLUSPROP_FORMAT_DWORD ), |
CLUSPROP_SYNTAX_PARTITION_INFO = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_P
ARTITION_INFO, CLUSPROP_FORMAT_BINARY ), | | CLUSPROP_SYNTAX_PARTITION_INFO = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_P
ARTITION_INFO, CLUSPROP_FORMAT_BINARY ), |
CLUSPROP_SYNTAX_FTSET_INFO = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_F
TSET_INFO, CLUSPROP_FORMAT_BINARY ), | | CLUSPROP_SYNTAX_FTSET_INFO = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_F
TSET_INFO, CLUSPROP_FORMAT_BINARY ), |
|
CLUSPROP_SYNTAX_DISK_SERIALNUMBER = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_D | | CLUSPROP_SYNTAX_DISK_SERIALNUMBER = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_D |
ISK_SERIALNUMBER, CLUSPROP_FORMAT_SZ ) | | ISK_SERIALNUMBER, CLUSPROP_FORMAT_SZ ), |
| | CLUSPROP_SYNTAX_DISK_GUID = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_D |
| | ISK_GUID, CLUSPROP_FORMAT_SZ ), |
| | CLUSPROP_SYNTAX_DISK_SIZE = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_D |
| | ISK_SIZE, CLUSPROP_FORMAT_ULARGE_INTEGER ), |
| | CLUSPROP_SYNTAX_PARTITION_INFO_EX = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_P |
| | ARTITION_INFO_EX, CLUSPROP_FORMAT_BINARY ), |
| | CLUSPROP_SYNTAX_LIST_VALUE_FILETIME = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_L |
| | IST_VALUE, CLUSPROP_FORMAT_FILETIME ), |
| | |
} CLUSTER_PROPERTY_SYNTAX; | | } CLUSTER_PROPERTY_SYNTAX; |
| | |
#endif // _CLUSTER_API_TYPES_ | | #endif // _CLUSTER_API_TYPES_ |
| | |
// | | // |
// Define Cluster Control Code access methods | | // Define Cluster Control Code access methods |
// | | // |
#define CLUS_ACCESS_ANY 0 | | #define CLUS_ACCESS_ANY 0 |
#define CLUS_ACCESS_READ 0x01 | | #define CLUS_ACCESS_READ 0x01 |
| | |
skipping to change at line 1172 | | skipping to change at line 1737 |
CLCTL_GET_REQUIRED_DEPENDENCIES = CLCTL_EXTERNAL_CODE( 4, CLUS_ACCES
S_READ, CLUS_NO_MODIFY ), | | CLCTL_GET_REQUIRED_DEPENDENCIES = CLCTL_EXTERNAL_CODE( 4, CLUS_ACCES
S_READ, CLUS_NO_MODIFY ), |
CLCTL_GET_ARB_TIMEOUT = CLCTL_EXTERNAL_CODE( 5, CLUS_ACCES
S_READ, CLUS_NO_MODIFY ), | | CLCTL_GET_ARB_TIMEOUT = CLCTL_EXTERNAL_CODE( 5, CLUS_ACCES
S_READ, CLUS_NO_MODIFY ), |
| | |
CLCTL_GET_NAME = CLCTL_EXTERNAL_CODE( 10, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), | | CLCTL_GET_NAME = CLCTL_EXTERNAL_CODE( 10, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), |
CLCTL_GET_RESOURCE_TYPE = CLCTL_EXTERNAL_CODE( 11, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), | | CLCTL_GET_RESOURCE_TYPE = CLCTL_EXTERNAL_CODE( 11, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), |
CLCTL_GET_NODE = CLCTL_EXTERNAL_CODE( 12, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), | | CLCTL_GET_NODE = CLCTL_EXTERNAL_CODE( 12, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), |
CLCTL_GET_NETWORK = CLCTL_EXTERNAL_CODE( 13, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), | | CLCTL_GET_NETWORK = CLCTL_EXTERNAL_CODE( 13, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), |
CLCTL_GET_ID = CLCTL_EXTERNAL_CODE( 14, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), | | CLCTL_GET_ID = CLCTL_EXTERNAL_CODE( 14, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), |
CLCTL_GET_FQDN = CLCTL_EXTERNAL_CODE( 15, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), | | CLCTL_GET_FQDN = CLCTL_EXTERNAL_CODE( 15, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), |
CLCTL_GET_CLUSTER_SERVICE_ACCOUNT_NAME = CLCTL_EXTERNAL_CODE( 16, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), | | CLCTL_GET_CLUSTER_SERVICE_ACCOUNT_NAME = CLCTL_EXTERNAL_CODE( 16, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), |
|
| | CLCTL_CHECK_VOTER_EVICT = CLCTL_EXTERNAL_CODE( 17, CLUS_ACCE |
| | SS_READ, CLUS_NO_MODIFY ), |
| | CLCTL_CHECK_VOTER_DOWN = CLCTL_EXTERNAL_CODE( 18, CLUS_ACCE |
| | SS_READ, CLUS_NO_MODIFY ), |
| | CLCTL_SHUTDOWN = CLCTL_EXTERNAL_CODE( 19, CLUS_ACCE |
| | SS_READ, CLUS_NO_MODIFY ), |
| | |
CLCTL_ENUM_COMMON_PROPERTIES = CLCTL_EXTERNAL_CODE( 20, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), | | CLCTL_ENUM_COMMON_PROPERTIES = CLCTL_EXTERNAL_CODE( 20, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), |
CLCTL_GET_RO_COMMON_PROPERTIES = CLCTL_EXTERNAL_CODE( 21, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), | | CLCTL_GET_RO_COMMON_PROPERTIES = CLCTL_EXTERNAL_CODE( 21, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), |
CLCTL_GET_COMMON_PROPERTIES = CLCTL_EXTERNAL_CODE( 22, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), | | CLCTL_GET_COMMON_PROPERTIES = CLCTL_EXTERNAL_CODE( 22, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), |
CLCTL_SET_COMMON_PROPERTIES = CLCTL_EXTERNAL_CODE( 23, CLUS_ACCE
SS_WRITE, CLUS_MODIFY ), | | CLCTL_SET_COMMON_PROPERTIES = CLCTL_EXTERNAL_CODE( 23, CLUS_ACCE
SS_WRITE, CLUS_MODIFY ), |
CLCTL_VALIDATE_COMMON_PROPERTIES = CLCTL_EXTERNAL_CODE( 24, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), | | CLCTL_VALIDATE_COMMON_PROPERTIES = CLCTL_EXTERNAL_CODE( 24, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), |
CLCTL_GET_COMMON_PROPERTY_FMTS = CLCTL_EXTERNAL_CODE( 25, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), | | CLCTL_GET_COMMON_PROPERTY_FMTS = CLCTL_EXTERNAL_CODE( 25, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), |
CLCTL_GET_COMMON_RESOURCE_PROPERTY_FMTS = CLCTL_EXTERNAL_CODE( 26, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), | | CLCTL_GET_COMMON_RESOURCE_PROPERTY_FMTS = CLCTL_EXTERNAL_CODE( 26, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), |
| | |
CLCTL_ENUM_PRIVATE_PROPERTIES = CLCTL_EXTERNAL_CODE( 30, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), | | CLCTL_ENUM_PRIVATE_PROPERTIES = CLCTL_EXTERNAL_CODE( 30, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), |
| | |
skipping to change at line 1204 | | skipping to change at line 1772 |
CLCTL_DELETE_CRYPTO_CHECKPOINT = CLCTL_EXTERNAL_CODE( 44, CLUS_ACCE
SS_WRITE, CLUS_MODIFY ), | | CLCTL_DELETE_CRYPTO_CHECKPOINT = CLCTL_EXTERNAL_CODE( 44, CLUS_ACCE
SS_WRITE, CLUS_MODIFY ), |
CLCTL_GET_CRYPTO_CHECKPOINTS = CLCTL_EXTERNAL_CODE( 45, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), | | CLCTL_GET_CRYPTO_CHECKPOINTS = CLCTL_EXTERNAL_CODE( 45, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), |
| | |
CLCTL_RESOURCE_UPGRADE_DLL = CLCTL_EXTERNAL_CODE( 46, CLUS_ACCE
SS_WRITE, CLUS_MODIFY ), | | CLCTL_RESOURCE_UPGRADE_DLL = CLCTL_EXTERNAL_CODE( 46, CLUS_ACCE
SS_WRITE, CLUS_MODIFY ), |
| | |
CLCTL_ADD_REGISTRY_CHECKPOINT_64BIT = CLCTL_EXTERNAL_CODE( 47, CLUS_ACCE
SS_WRITE, CLUS_MODIFY ), | | CLCTL_ADD_REGISTRY_CHECKPOINT_64BIT = CLCTL_EXTERNAL_CODE( 47, CLUS_ACCE
SS_WRITE, CLUS_MODIFY ), |
CLCTL_ADD_REGISTRY_CHECKPOINT_32BIT = CLCTL_EXTERNAL_CODE( 48, CLUS_ACCE
SS_WRITE, CLUS_MODIFY ), | | CLCTL_ADD_REGISTRY_CHECKPOINT_32BIT = CLCTL_EXTERNAL_CODE( 48, CLUS_ACCE
SS_WRITE, CLUS_MODIFY ), |
| | |
CLCTL_GET_LOADBAL_PROCESS_LIST = CLCTL_EXTERNAL_CODE( 50, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), | | CLCTL_GET_LOADBAL_PROCESS_LIST = CLCTL_EXTERNAL_CODE( 50, CLUS_ACCE
SS_READ, CLUS_NO_MODIFY ), |
| | |
|
CLCTL_GET_NETWORK_NAME = CLCTL_EXTERNAL_CODE( 90, CLUS_ACCE | | CLCTL_GET_NETWORK_NAME = CLCTL_EXTERNAL_CODE( 90, CLUS_ACCE |
SS_READ, CLUS_NO_MODIFY ), | | SS_READ, CLUS_NO_MODIFY ), |
CLCTL_NETNAME_GET_VIRTUAL_SERVER_TOKEN = CLCTL_EXTERNAL_CODE( 91, CLUS_ACCE | | CLCTL_NETNAME_GET_VIRTUAL_SERVER_TOKEN = CLCTL_EXTERNAL_CODE( 91, CLUS_ACCE |
SS_READ, CLUS_NO_MODIFY ), | | SS_READ, CLUS_NO_MODIFY ), |
CLCTL_NETNAME_REGISTER_DNS_RECORDS = CLCTL_EXTERNAL_CODE( 92, CLUS_ACCE
SS_WRITE, CLUS_NO_MODIFY ), | | CLCTL_NETNAME_REGISTER_DNS_RECORDS = CLCTL_EXTERNAL_CODE( 92, CLUS_ACCE
SS_WRITE, CLUS_NO_MODIFY ), |
|
| | CLCTL_GET_DNS_NAME = CLCTL_EXTERNAL_CODE( 93, CLUS_ACCE |
| | SS_READ, CLUS_NO_MODIFY ), |
| | CLCTL_NETNAME_SET_PWD_INFO = CLCTL_EXTERNAL_CODE( 94, CLUS_ACCE |
| | SS_WRITE, CLUS_NO_MODIFY ), |
| | CLCTL_NETNAME_DELETE_CO = CLCTL_EXTERNAL_CODE( 95, CLUS_ACCE |
| | SS_WRITE, CLUS_NO_MODIFY ), |
| | CLCTL_NETNAME_VALIDATE_VCO = CLCTL_EXTERNAL_CODE( 96, CLUS_ACCE |
| | SS_READ, CLUS_NO_MODIFY ), |
| | |
CLCTL_STORAGE_GET_DISK_INFO = CLCTL_EXTERNAL_CODE( 100, CLUS_ACC
ESS_READ, CLUS_NO_MODIFY ), | | CLCTL_STORAGE_GET_DISK_INFO = CLCTL_EXTERNAL_CODE( 100, CLUS_ACC
ESS_READ, CLUS_NO_MODIFY ), |
CLCTL_STORAGE_GET_AVAILABLE_DISKS = CLCTL_EXTERNAL_CODE( 101, CLUS_ACC
ESS_READ, CLUS_NO_MODIFY ), | | CLCTL_STORAGE_GET_AVAILABLE_DISKS = CLCTL_EXTERNAL_CODE( 101, CLUS_ACC
ESS_READ, CLUS_NO_MODIFY ), |
CLCTL_STORAGE_IS_PATH_VALID = CLCTL_EXTERNAL_CODE( 102, CLUS_ACC
ESS_READ, CLUS_NO_MODIFY ), | | CLCTL_STORAGE_IS_PATH_VALID = CLCTL_EXTERNAL_CODE( 102, CLUS_ACC
ESS_READ, CLUS_NO_MODIFY ), |
|
CLCTL_STORAGE_GET_ALL_AVAILABLE_DISKS = (CLCTL_EXTERNAL_CODE( 103, CLUS_AC | | CLCTL_STORAGE_GET_ALL_AVAILABLE_DISKS = CLCTL_EXTERNAL_CODE( 103, CLUS_ACC |
CESS_READ, CLUS_NO_MODIFY ) | CLCTL_GLOBAL_MASK), | | ESS_READ, CLUS_NO_MODIFY ), |
| | CLCTL_STORAGE_SYNC_CLUSDISK_DB = (CLCTL_EXTERNAL_CODE( 103, CLUS_AC |
| | CESS_WRITE, CLUS_MODIFY ) | CLCTL_GLOBAL_MASK), |
| | |
CLCTL_QUERY_DELETE = CLCTL_EXTERNAL_CODE( 110, CLUS_ACC
ESS_READ, CLUS_NO_MODIFY ), | | CLCTL_QUERY_DELETE = CLCTL_EXTERNAL_CODE( 110, CLUS_ACC
ESS_READ, CLUS_NO_MODIFY ), |
| | |
|
| | CLCTL_IPADDRESS_RENEW_LEASE = CLCTL_EXTERNAL_CODE( 111, CLUS_ACC |
| | ESS_WRITE, CLUS_MODIFY ), |
| | CLCTL_IPADDRESS_RELEASE_LEASE = CLCTL_EXTERNAL_CODE( 112, CLUS_ACC |
| | ESS_WRITE, CLUS_MODIFY ), |
| | |
CLCTL_QUERY_MAINTENANCE_MODE = CLCTL_EXTERNAL_CODE( 120, CLUS_ACC
ESS_READ, CLUS_NO_MODIFY ), | | CLCTL_QUERY_MAINTENANCE_MODE = CLCTL_EXTERNAL_CODE( 120, CLUS_ACC
ESS_READ, CLUS_NO_MODIFY ), |
CLCTL_SET_MAINTENANCE_MODE = CLCTL_EXTERNAL_CODE( 121, CLUS_ACC
ESS_WRITE, CLUS_MODIFY ), | | CLCTL_SET_MAINTENANCE_MODE = CLCTL_EXTERNAL_CODE( 121, CLUS_ACC
ESS_WRITE, CLUS_MODIFY ), |
|
| | CLCTL_STORAGE_SET_DRIVELETTER = CLCTL_EXTERNAL_CODE( 122, CLUS_ACC |
| | ESS_WRITE, CLUS_MODIFY ), |
| | CLCTL_STORAGE_GET_DRIVELETTERS = CLCTL_EXTERNAL_CODE( 123, CLUS_ACC |
| | ESS_READ, CLUS_NO_MODIFY ), |
| | CLCTL_STORAGE_GET_DISK_INFO_EX = CLCTL_EXTERNAL_CODE( 124, CLUS_ACC |
| | ESS_READ, CLUS_NO_MODIFY ), |
| | CLCTL_STORAGE_GET_AVAILABLE_DISKS_EX = CLCTL_EXTERNAL_CODE( 125, CLUS_ACC |
| | ESS_READ, CLUS_NO_MODIFY ), |
| | CLCTL_STORAGE_REMAP_DRIVELETTER = CLCTL_EXTERNAL_CODE( 128, CLUS_ACC |
| | ESS_READ, CLUS_NO_MODIFY ), |
| | |
// | | // |
// Internal control codes | | // Internal control codes |
// | | // |
CLCTL_DELETE = CLCTL_INTERNAL_CODE( 1, CLUS_ACCES
S_WRITE, CLUS_MODIFY ), | | CLCTL_DELETE = CLCTL_INTERNAL_CODE( 1, CLUS_ACCES
S_WRITE, CLUS_MODIFY ), |
CLCTL_INSTALL_NODE = CLCTL_INTERNAL_CODE( 2, CLUS_ACCES
S_WRITE, CLUS_MODIFY ), | | CLCTL_INSTALL_NODE = CLCTL_INTERNAL_CODE( 2, CLUS_ACCES
S_WRITE, CLUS_MODIFY ), |
CLCTL_EVICT_NODE = CLCTL_INTERNAL_CODE( 3, CLUS_ACCES
S_WRITE, CLUS_MODIFY ), | | CLCTL_EVICT_NODE = CLCTL_INTERNAL_CODE( 3, CLUS_ACCES
S_WRITE, CLUS_MODIFY ), |
CLCTL_ADD_DEPENDENCY = CLCTL_INTERNAL_CODE( 4, CLUS_ACCES
S_WRITE, CLUS_MODIFY ), | | CLCTL_ADD_DEPENDENCY = CLCTL_INTERNAL_CODE( 4, CLUS_ACCES
S_WRITE, CLUS_MODIFY ), |
CLCTL_REMOVE_DEPENDENCY = CLCTL_INTERNAL_CODE( 5, CLUS_ACCES
S_WRITE, CLUS_MODIFY ), | | CLCTL_REMOVE_DEPENDENCY = CLCTL_INTERNAL_CODE( 5, CLUS_ACCES
S_WRITE, CLUS_MODIFY ), |
CLCTL_ADD_OWNER = CLCTL_INTERNAL_CODE( 6, CLUS_ACCES
S_WRITE, CLUS_MODIFY ), | | CLCTL_ADD_OWNER = CLCTL_INTERNAL_CODE( 6, CLUS_ACCES
S_WRITE, CLUS_MODIFY ), |
| | |
skipping to change at line 1239 | | skipping to change at line 1820 |
CLCTL_SET_NAME = CLCTL_INTERNAL_CODE( 9, CLUS_ACCES
S_WRITE, CLUS_MODIFY ), | | CLCTL_SET_NAME = CLCTL_INTERNAL_CODE( 9, CLUS_ACCES
S_WRITE, CLUS_MODIFY ), |
CLCTL_CLUSTER_NAME_CHANGED = CLCTL_INTERNAL_CODE( 10, CLUS_ACCE
SS_WRITE, CLUS_MODIFY ), | | CLCTL_CLUSTER_NAME_CHANGED = CLCTL_INTERNAL_CODE( 10, CLUS_ACCE
SS_WRITE, CLUS_MODIFY ), |
CLCTL_CLUSTER_VERSION_CHANGED = CLCTL_INTERNAL_CODE( 11, CLUS_ACCE
SS_WRITE, CLUS_MODIFY ), | | CLCTL_CLUSTER_VERSION_CHANGED = CLCTL_INTERNAL_CODE( 11, CLUS_ACCE
SS_WRITE, CLUS_MODIFY ), |
CLCTL_FIXUP_ON_UPGRADE = CLCTL_INTERNAL_CODE( 12, CLUS_ACCE
SS_WRITE, CLUS_MODIFY ), | | CLCTL_FIXUP_ON_UPGRADE = CLCTL_INTERNAL_CODE( 12, CLUS_ACCE
SS_WRITE, CLUS_MODIFY ), |
CLCTL_STARTING_PHASE1 = CLCTL_INTERNAL_CODE( 13, CLUS_ACCE
SS_WRITE, CLUS_MODIFY ), | | CLCTL_STARTING_PHASE1 = CLCTL_INTERNAL_CODE( 13, CLUS_ACCE
SS_WRITE, CLUS_MODIFY ), |
CLCTL_STARTING_PHASE2 = CLCTL_INTERNAL_CODE( 14, CLUS_ACCE
SS_WRITE, CLUS_MODIFY ), | | CLCTL_STARTING_PHASE2 = CLCTL_INTERNAL_CODE( 14, CLUS_ACCE
SS_WRITE, CLUS_MODIFY ), |
CLCTL_HOLD_IO = CLCTL_INTERNAL_CODE( 15, CLUS_ACCE
SS_WRITE, CLUS_MODIFY ), | | CLCTL_HOLD_IO = CLCTL_INTERNAL_CODE( 15, CLUS_ACCE
SS_WRITE, CLUS_MODIFY ), |
CLCTL_RESUME_IO = CLCTL_INTERNAL_CODE( 16, CLUS_ACCE
SS_WRITE, CLUS_MODIFY ), | | CLCTL_RESUME_IO = CLCTL_INTERNAL_CODE( 16, CLUS_ACCE
SS_WRITE, CLUS_MODIFY ), |
CLCTL_FORCE_QUORUM = CLCTL_INTERNAL_CODE( 17, CLUS_ACCE
SS_WRITE, CLUS_MODIFY ), | | CLCTL_FORCE_QUORUM = CLCTL_INTERNAL_CODE( 17, CLUS_ACCE
SS_WRITE, CLUS_MODIFY ), |
CLCTL_INITIALIZE = CLCTL_INTERNAL_CODE( 18, CLUS_ACCE
SS_WRITE, CLUS_MODIFY ), | | CLCTL_INITIALIZE = CLCTL_INTERNAL_CODE( 18, CLUS_ACCE
SS_WRITE, CLUS_MODIFY ), |
|
CLCTL_STATE_CHANGE_REASON = CLCTL_INTERNAL_CODE( 19, CLUS_ACCE | | CLCTL_STATE_CHANGE_REASON = CLCTL_INTERNAL_CODE( 19, CLUS_ACCE |
SS_WRITE, CLUS_MODIFY ) | | SS_WRITE, CLUS_MODIFY ), |
| | CLCTL_PROVIDER_STATE_CHANGE = CLCTL_INTERNAL_CODE( 20, CLUS_ACCE |
| | SS_WRITE, CLUS_MODIFY ), |
| | |
} CLCTL_CODES; | | } CLCTL_CODES; |
| | |
#endif // _CLUSTER_API_TYPES_ | | #endif // _CLUSTER_API_TYPES_ |
| | |
// | | // |
// Define macros to generate object specific control codes | | // Define macros to generate object specific control codes |
// | | // |
#define CLUSCTL_RESOURCE_CODE( Function ) ( \ | | #define CLUSCTL_RESOURCE_CODE( Function ) ( \ |
((CLUS_OBJECT_RESOURCE << CLUSCTL_OBJECT_SHIFT) | Function) ) | | ((CLUS_OBJECT_RESOURCE << CLUSCTL_OBJECT_SHIFT) | Function) ) |
| | |
skipping to change at line 1378 | | skipping to change at line 1960 |
| | |
CLUSCTL_RESOURCE_GET_LOADBAL_PROCESS_LIST = | | CLUSCTL_RESOURCE_GET_LOADBAL_PROCESS_LIST = |
CLUSCTL_RESOURCE_CODE( CLCTL_GET_LOADBAL_PROCESS_LIST ), | | CLUSCTL_RESOURCE_CODE( CLCTL_GET_LOADBAL_PROCESS_LIST ), |
| | |
CLUSCTL_RESOURCE_GET_NETWORK_NAME = | | CLUSCTL_RESOURCE_GET_NETWORK_NAME = |
CLUSCTL_RESOURCE_CODE( CLCTL_GET_NETWORK_NAME ), | | CLUSCTL_RESOURCE_CODE( CLCTL_GET_NETWORK_NAME ), |
| | |
CLUSCTL_RESOURCE_NETNAME_GET_VIRTUAL_SERVER_TOKEN = | | CLUSCTL_RESOURCE_NETNAME_GET_VIRTUAL_SERVER_TOKEN = |
CLUSCTL_RESOURCE_CODE( CLCTL_NETNAME_GET_VIRTUAL_SERVER_TOKEN ), | | CLUSCTL_RESOURCE_CODE( CLCTL_NETNAME_GET_VIRTUAL_SERVER_TOKEN ), |
| | |
|
| | CLUSCTL_RESOURCE_NETNAME_SET_PWD_INFO = |
| | CLUSCTL_RESOURCE_CODE( CLCTL_NETNAME_SET_PWD_INFO ), |
| | |
| | CLUSCTL_RESOURCE_NETNAME_DELETE_CO = |
| | CLUSCTL_RESOURCE_CODE( CLCTL_NETNAME_DELETE_CO ), |
| | |
| | CLUSCTL_RESOURCE_NETNAME_VALIDATE_VCO = |
| | CLUSCTL_RESOURCE_CODE( CLCTL_NETNAME_VALIDATE_VCO ), |
| | |
CLUSCTL_RESOURCE_NETNAME_REGISTER_DNS_RECORDS = | | CLUSCTL_RESOURCE_NETNAME_REGISTER_DNS_RECORDS = |
CLUSCTL_RESOURCE_CODE( CLCTL_NETNAME_REGISTER_DNS_RECORDS ), | | CLUSCTL_RESOURCE_CODE( CLCTL_NETNAME_REGISTER_DNS_RECORDS ), |
| | |
|
| | CLUSCTL_RESOURCE_GET_DNS_NAME = |
| | CLUSCTL_RESOURCE_CODE( CLCTL_GET_DNS_NAME ), |
| | |
CLUSCTL_RESOURCE_STORAGE_GET_DISK_INFO = | | CLUSCTL_RESOURCE_STORAGE_GET_DISK_INFO = |
CLUSCTL_RESOURCE_CODE( CLCTL_STORAGE_GET_DISK_INFO ), | | CLUSCTL_RESOURCE_CODE( CLCTL_STORAGE_GET_DISK_INFO ), |
| | |
CLUSCTL_RESOURCE_STORAGE_IS_PATH_VALID = | | CLUSCTL_RESOURCE_STORAGE_IS_PATH_VALID = |
CLUSCTL_RESOURCE_CODE( CLCTL_STORAGE_IS_PATH_VALID ), | | CLUSCTL_RESOURCE_CODE( CLCTL_STORAGE_IS_PATH_VALID ), |
| | |
CLUSCTL_RESOURCE_QUERY_DELETE = | | CLUSCTL_RESOURCE_QUERY_DELETE = |
CLUSCTL_RESOURCE_CODE( CLCTL_QUERY_DELETE ), | | CLUSCTL_RESOURCE_CODE( CLCTL_QUERY_DELETE ), |
| | |
CLUSCTL_RESOURCE_UPGRADE_DLL = | | CLUSCTL_RESOURCE_UPGRADE_DLL = |
CLUSCTL_RESOURCE_CODE( CLCTL_RESOURCE_UPGRADE_DLL ), | | CLUSCTL_RESOURCE_CODE( CLCTL_RESOURCE_UPGRADE_DLL ), |
| | |
|
| | CLUSCTL_RESOURCE_IPADDRESS_RENEW_LEASE = |
| | CLUSCTL_RESOURCE_CODE( CLCTL_IPADDRESS_RENEW_LEASE ), |
| | |
| | CLUSCTL_RESOURCE_IPADDRESS_RELEASE_LEASE = |
| | CLUSCTL_RESOURCE_CODE( CLCTL_IPADDRESS_RELEASE_LEASE ), |
| | |
CLUSCTL_RESOURCE_ADD_REGISTRY_CHECKPOINT_64BIT = | | CLUSCTL_RESOURCE_ADD_REGISTRY_CHECKPOINT_64BIT = |
CLUSCTL_RESOURCE_CODE( CLCTL_ADD_REGISTRY_CHECKPOINT_64BIT ), | | CLUSCTL_RESOURCE_CODE( CLCTL_ADD_REGISTRY_CHECKPOINT_64BIT ), |
| | |
CLUSCTL_RESOURCE_ADD_REGISTRY_CHECKPOINT_32BIT = | | CLUSCTL_RESOURCE_ADD_REGISTRY_CHECKPOINT_32BIT = |
CLUSCTL_RESOURCE_CODE( CLCTL_ADD_REGISTRY_CHECKPOINT_32BIT ), | | CLUSCTL_RESOURCE_CODE( CLCTL_ADD_REGISTRY_CHECKPOINT_32BIT ), |
| | |
CLUSCTL_RESOURCE_QUERY_MAINTENANCE_MODE = | | CLUSCTL_RESOURCE_QUERY_MAINTENANCE_MODE = |
CLUSCTL_RESOURCE_CODE( CLCTL_QUERY_MAINTENANCE_MODE ), | | CLUSCTL_RESOURCE_CODE( CLCTL_QUERY_MAINTENANCE_MODE ), |
| | |
CLUSCTL_RESOURCE_SET_MAINTENANCE_MODE = | | CLUSCTL_RESOURCE_SET_MAINTENANCE_MODE = |
CLUSCTL_RESOURCE_CODE( CLCTL_SET_MAINTENANCE_MODE ), | | CLUSCTL_RESOURCE_CODE( CLCTL_SET_MAINTENANCE_MODE ), |
| | |
|
| | CLUSCTL_RESOURCE_STORAGE_SET_DRIVELETTER = |
| | CLUSCTL_RESOURCE_CODE( CLCTL_STORAGE_SET_DRIVELETTER ), |
| | |
| | CLUSCTL_RESOURCE_STORAGE_GET_DISK_INFO_EX = |
| | CLUSCTL_RESOURCE_CODE( CLCTL_STORAGE_GET_DISK_INFO_EX ), |
| | |
// Internal | | // Internal |
CLUSCTL_RESOURCE_DELETE = | | CLUSCTL_RESOURCE_DELETE = |
CLUSCTL_RESOURCE_CODE( CLCTL_DELETE ), | | CLUSCTL_RESOURCE_CODE( CLCTL_DELETE ), |
| | |
CLUSCTL_RESOURCE_INSTALL_NODE = | | CLUSCTL_RESOURCE_INSTALL_NODE = |
CLUSCTL_RESOURCE_CODE( CLCTL_INSTALL_NODE ), | | CLUSCTL_RESOURCE_CODE( CLCTL_INSTALL_NODE ), |
| | |
CLUSCTL_RESOURCE_EVICT_NODE = | | CLUSCTL_RESOURCE_EVICT_NODE = |
CLUSCTL_RESOURCE_CODE( CLCTL_EVICT_NODE ), | | CLUSCTL_RESOURCE_CODE( CLCTL_EVICT_NODE ), |
| | |
| | |
skipping to change at line 1443 | | skipping to change at line 2049 |
CLUSCTL_RESOURCE_CLUSTER_VERSION_CHANGED = | | CLUSCTL_RESOURCE_CLUSTER_VERSION_CHANGED = |
CLUSCTL_RESOURCE_CODE( CLCTL_CLUSTER_VERSION_CHANGED ), | | CLUSCTL_RESOURCE_CODE( CLCTL_CLUSTER_VERSION_CHANGED ), |
| | |
CLUSCTL_RESOURCE_FORCE_QUORUM = | | CLUSCTL_RESOURCE_FORCE_QUORUM = |
CLUSCTL_RESOURCE_CODE( CLCTL_FORCE_QUORUM ), | | CLUSCTL_RESOURCE_CODE( CLCTL_FORCE_QUORUM ), |
| | |
CLUSCTL_RESOURCE_INITIALIZE = | | CLUSCTL_RESOURCE_INITIALIZE = |
CLUSCTL_RESOURCE_CODE( CLCTL_INITIALIZE ), | | CLUSCTL_RESOURCE_CODE( CLCTL_INITIALIZE ), |
| | |
CLUSCTL_RESOURCE_STATE_CHANGE_REASON = | | CLUSCTL_RESOURCE_STATE_CHANGE_REASON = |
|
CLUSCTL_RESOURCE_CODE( CLCTL_STATE_CHANGE_REASON ) | | CLUSCTL_RESOURCE_CODE( CLCTL_STATE_CHANGE_REASON ), |
| | |
| | CLUSCTL_RESOURCE_PROVIDER_STATE_CHANGE = |
| | CLUSCTL_RESOURCE_CODE( CLCTL_PROVIDER_STATE_CHANGE ), |
| | |
} CLUSCTL_RESOURCE_CODES; | | } CLUSCTL_RESOURCE_CODES; |
| | |
// | | // |
// Cluster Control Codes for Resource Types | | // Cluster Control Codes for Resource Types |
// | | // |
typedef enum CLUSCTL_RESOURCE_TYPE_CODES { | | typedef enum CLUSCTL_RESOURCE_TYPE_CODES { |
| | |
// External | | // External |
CLUSCTL_RESOURCE_TYPE_UNKNOWN = | | CLUSCTL_RESOURCE_TYPE_UNKNOWN = |
| | |
skipping to change at line 1522 | | skipping to change at line 2131 |
| | |
CLUSCTL_RESOURCE_TYPE_GET_REGISTRY_CHECKPOINTS = | | CLUSCTL_RESOURCE_TYPE_GET_REGISTRY_CHECKPOINTS = |
CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_GET_REGISTRY_CHECKPOINTS ), | | CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_GET_REGISTRY_CHECKPOINTS ), |
| | |
CLUSCTL_RESOURCE_TYPE_GET_CRYPTO_CHECKPOINTS = | | CLUSCTL_RESOURCE_TYPE_GET_CRYPTO_CHECKPOINTS = |
CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_GET_CRYPTO_CHECKPOINTS ), | | CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_GET_CRYPTO_CHECKPOINTS ), |
| | |
CLUSCTL_RESOURCE_TYPE_STORAGE_GET_AVAILABLE_DISKS = | | CLUSCTL_RESOURCE_TYPE_STORAGE_GET_AVAILABLE_DISKS = |
CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_STORAGE_GET_AVAILABLE_DISKS ), | | CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_STORAGE_GET_AVAILABLE_DISKS ), |
| | |
|
| | CLUSCTL_RESOURCE_TYPE_STORAGE_SYNC_CLUSDISK_DB = |
| | CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_STORAGE_SYNC_CLUSDISK_DB ), |
| | |
CLUSCTL_RESOURCE_TYPE_QUERY_DELETE = | | CLUSCTL_RESOURCE_TYPE_QUERY_DELETE = |
CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_QUERY_DELETE ), | | CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_QUERY_DELETE ), |
| | |
|
| | CLUSCTL_RESOURCE_TYPE_STORAGE_GET_DRIVELETTERS = |
| | CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_STORAGE_GET_DRIVELETTERS ), |
| | |
| | CLUSCTL_RESOURCE_TYPE_STORAGE_GET_AVAILABLE_DISKS_EX = |
| | CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_STORAGE_GET_AVAILABLE_DISKS_EX ), |
| | |
| | CLUSCTL_RESOURCE_TYPE_STORAGE_REMAP_DRIVELETTER = |
| | CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_STORAGE_REMAP_DRIVELETTER ), |
| | |
// Internal | | // Internal |
CLUSCTL_RESOURCE_TYPE_INSTALL_NODE = | | CLUSCTL_RESOURCE_TYPE_INSTALL_NODE = |
CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_INSTALL_NODE ), | | CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_INSTALL_NODE ), |
| | |
CLUSCTL_RESOURCE_TYPE_EVICT_NODE = | | CLUSCTL_RESOURCE_TYPE_EVICT_NODE = |
CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_EVICT_NODE ), | | CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_EVICT_NODE ), |
| | |
CLUSCTL_RESOURCE_TYPE_CLUSTER_VERSION_CHANGED = | | CLUSCTL_RESOURCE_TYPE_CLUSTER_VERSION_CHANGED = |
CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_CLUSTER_VERSION_CHANGED ), | | CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_CLUSTER_VERSION_CHANGED ), |
| | |
| | |
skipping to change at line 1848 | | skipping to change at line 2469 |
CLUSCTL_CLUSTER_SET_PRIVATE_PROPERTIES = | | CLUSCTL_CLUSTER_SET_PRIVATE_PROPERTIES = |
CLUSCTL_CLUSTER_CODE( CLCTL_SET_PRIVATE_PROPERTIES ), | | CLUSCTL_CLUSTER_CODE( CLCTL_SET_PRIVATE_PROPERTIES ), |
| | |
CLUSCTL_CLUSTER_VALIDATE_PRIVATE_PROPERTIES = | | CLUSCTL_CLUSTER_VALIDATE_PRIVATE_PROPERTIES = |
CLUSCTL_CLUSTER_CODE( CLCTL_VALIDATE_PRIVATE_PROPERTIES ), | | CLUSCTL_CLUSTER_CODE( CLCTL_VALIDATE_PRIVATE_PROPERTIES ), |
| | |
CLUSCTL_CLUSTER_GET_COMMON_PROPERTY_FMTS= | | CLUSCTL_CLUSTER_GET_COMMON_PROPERTY_FMTS= |
CLUSCTL_CLUSTER_CODE( CLCTL_GET_COMMON_PROPERTY_FMTS ), | | CLUSCTL_CLUSTER_CODE( CLCTL_GET_COMMON_PROPERTY_FMTS ), |
| | |
CLUSCTL_CLUSTER_GET_PRIVATE_PROPERTY_FMTS= | | CLUSCTL_CLUSTER_GET_PRIVATE_PROPERTY_FMTS= |
|
CLUSCTL_CLUSTER_CODE( CLCTL_GET_PRIVATE_PROPERTY_FMTS ) | | CLUSCTL_CLUSTER_CODE( CLCTL_GET_PRIVATE_PROPERTY_FMTS ), |
| | |
| | CLUSCTL_CLUSTER_CHECK_VOTER_EVICT= |
| | CLUSCTL_CLUSTER_CODE( CLCTL_CHECK_VOTER_EVICT ), |
| | |
| | CLUSCTL_CLUSTER_CHECK_VOTER_DOWN= |
| | CLUSCTL_CLUSTER_CODE( CLCTL_CHECK_VOTER_DOWN ), |
| | |
| | CLUSCTL_CLUSTER_SHUTDOWN= |
| | CLUSCTL_CLUSTER_CODE( CLCTL_SHUTDOWN ), |
| | |
} CLUSCTL_CLUSTER_CODES; | | } CLUSCTL_CLUSTER_CODES; |
| | |
// | | // |
// Cluster Resource Class types | | // Cluster Resource Class types |
// | | // |
typedef enum CLUSTER_RESOURCE_CLASS { | | typedef enum CLUSTER_RESOURCE_CLASS { |
CLUS_RESCLASS_UNKNOWN = 0, | | CLUS_RESCLASS_UNKNOWN = 0, |
CLUS_RESCLASS_STORAGE, | | CLUS_RESCLASS_STORAGE, |
|
| | CLUS_RESCLASS_NETWORK, |
CLUS_RESCLASS_USER = 32768 | | CLUS_RESCLASS_USER = 32768 |
} CLUSTER_RESOURCE_CLASS; | | } CLUSTER_RESOURCE_CLASS; |
| | |
// | | // |
// Define Resource SubClass bits | | // Define Resource SubClass bits |
// | | // |
|
| | // legacy subclass struct |
| | // |
typedef enum CLUS_RESSUBCLASS { | | typedef enum CLUS_RESSUBCLASS { |
|
CLUS_RESSUBCLASS_SHARED = 0x80000000 | | CLUS_RESSUBCLASS_SHARED = 0x80000000 |
} CLUS_RESSUBCLASS; | | } CLUS_RESSUBCLASS; |
| | |
|
| | typedef enum CLUS_RESSUBCLASS_STORAGE { |
| | CLUS_RESSUBCLASS_STORAGE_SHARED_BUS = 0x80000000 |
| | } CLUS_RESSUBCLASS_STORAGE; |
| | |
| | typedef enum CLUS_RESSUBCLASS_NETWORK { |
| | CLUS_RESSUBCLASS_NETWORK_INTERNET_PROTOCOL = 0x80000000 // Identifies |
| | IP address providers |
| | } CLUS_RESSUBCLASS_NETWORK; |
| | |
// | | // |
// Cluster Characteristics | | // Cluster Characteristics |
// | | // |
typedef enum CLUS_CHARACTERISTICS { | | typedef enum CLUS_CHARACTERISTICS { |
CLUS_CHAR_UNKNOWN = 0x00000000, | | CLUS_CHAR_UNKNOWN = 0x00000000, |
CLUS_CHAR_QUORUM = 0x00000001, | | CLUS_CHAR_QUORUM = 0x00000001, |
CLUS_CHAR_DELETE_REQUIRES_ALL_NODES = 0x00000002, | | CLUS_CHAR_DELETE_REQUIRES_ALL_NODES = 0x00000002, |
CLUS_CHAR_LOCAL_QUORUM = 0x00000004, | | CLUS_CHAR_LOCAL_QUORUM = 0x00000004, |
CLUS_CHAR_LOCAL_QUORUM_DEBUG = 0x00000008, | | CLUS_CHAR_LOCAL_QUORUM_DEBUG = 0x00000008, |
CLUS_CHAR_REQUIRES_STATE_CHANGE_REASON = 0x00000010 | | CLUS_CHAR_REQUIRES_STATE_CHANGE_REASON = 0x00000010 |
| | |
skipping to change at line 1891 | | skipping to change at line 2532 |
// Cluster Flags | | // Cluster Flags |
// | | // |
typedef enum CLUS_FLAGS { | | typedef enum CLUS_FLAGS { |
CLUS_FLAG_CORE = 0x00000001 | | CLUS_FLAG_CORE = 0x00000001 |
} CLUS_FLAGS; | | } CLUS_FLAGS; |
| | |
// | | // |
// Cluster Resource Property Helper Structures | | // Cluster Resource Property Helper Structures |
// | | // |
| | |
|
#ifndef MIDL_PASS | | #if ( !MIDL_PASS && !__midl ) |
| | |
// Property syntax. Used for property names and values. | | // Property syntax. Used for property names and values. |
typedef union CLUSPROP_SYNTAX { | | typedef union CLUSPROP_SYNTAX { |
DWORD dw; | | DWORD dw; |
struct { | | struct { |
WORD wFormat; | | WORD wFormat; |
WORD wType; | | WORD wType; |
}; | | }; |
} CLUSPROP_SYNTAX, *PCLUSPROP_SYNTAX; | | } CLUSPROP_SYNTAX, *PCLUSPROP_SYNTAX; |
| | |
| | |
skipping to change at line 1973 | | skipping to change at line 2614 |
| | |
// Unsigned large Integer property value. | | // Unsigned large Integer property value. |
#ifdef __cplusplus | | #ifdef __cplusplus |
typedef struct CLUSPROP_ULARGE_INTEGER | | typedef struct CLUSPROP_ULARGE_INTEGER |
: public CLUSPROP_VALUE { | | : public CLUSPROP_VALUE { |
#else | | #else |
typedef struct CLUSPROP_ULARGE_INTEGER { | | typedef struct CLUSPROP_ULARGE_INTEGER { |
CLUSPROP_VALUE; | | CLUSPROP_VALUE; |
#endif | | #endif |
ULARGE_INTEGER li; | | ULARGE_INTEGER li; |
|
} CLUSPROP_ULARGE_INTEGER, *PCLUSPROP_ULARGE_INTEGER; | | } CLUSPROP_ULARGE_INTEGER; |
| | |
| | typedef CLUSPROP_ULARGE_INTEGER UNALIGNED *PCLUSPROP_ULARGE_INTEGER; |
| | |
// Signed large Integer property value. | | // Signed large Integer property value. |
#ifdef __cplusplus | | #ifdef __cplusplus |
typedef struct CLUSPROP_LARGE_INTEGER | | typedef struct CLUSPROP_LARGE_INTEGER |
: public CLUSPROP_VALUE { | | : public CLUSPROP_VALUE { |
#else | | #else |
typedef struct CLUSPROP_LARGE_INTEGER { | | typedef struct CLUSPROP_LARGE_INTEGER { |
CLUSPROP_VALUE; | | CLUSPROP_VALUE; |
#endif | | #endif |
LARGE_INTEGER li; | | LARGE_INTEGER li; |
|
} CLUSPROP_LARGE_INTEGER, *PCLUSPROP_LARGE_INTEGER; | | } CLUSPROP_LARGE_INTEGER; |
| | |
| | typedef CLUSPROP_LARGE_INTEGER UNALIGNED *PCLUSPROP_LARGE_INTEGER; |
| | |
// Security Descriptor property value. | | // Security Descriptor property value. |
#ifdef __cplusplus | | #ifdef __cplusplus |
typedef struct CLUSPROP_SECURITY_DESCRIPTOR : public CLUSPROP_VALUE { | | typedef struct CLUSPROP_SECURITY_DESCRIPTOR : public CLUSPROP_VALUE { |
#else | | #else |
typedef struct CLUSPROP_SECURITY_DESCRIPTOR { | | typedef struct CLUSPROP_SECURITY_DESCRIPTOR { |
CLUSPROP_VALUE; | | CLUSPROP_VALUE; |
#endif | | #endif |
union { | | union { |
SECURITY_DESCRIPTOR_RELATIVE sd; | | SECURITY_DESCRIPTOR_RELATIVE sd; |
BYTE rgbSecurityDescriptor[]; | | BYTE rgbSecurityDescriptor[]; |
}; | | }; |
} CLUSPROP_SECURITY_DESCRIPTOR, *PCLUSPROP_SECURITY_DESCRIPTOR; | | } CLUSPROP_SECURITY_DESCRIPTOR, *PCLUSPROP_SECURITY_DESCRIPTOR; |
| | |
|
| | // FILETIME Time property value. |
| | #ifdef __cplusplus |
| | typedef struct CLUSPROP_FILETIME |
| | : public CLUSPROP_VALUE { |
| | #else |
| | typedef struct CLUSPROP_FILETIME { |
| | CLUSPROP_VALUE; |
| | #endif |
| | FILETIME ft; |
| | } CLUSPROP_FILETIME, *PCLUSPROP_FILETIME; |
| | |
// Resource class info returned by CLCTL_GET_CLASS_INFO control functions. | | // Resource class info returned by CLCTL_GET_CLASS_INFO control functions. |
typedef struct CLUS_RESOURCE_CLASS_INFO { | | typedef struct CLUS_RESOURCE_CLASS_INFO { |
union { | | union { |
struct { | | struct { |
union { | | union { |
DWORD dw; | | DWORD dw; |
CLUSTER_RESOURCE_CLASS rc; | | CLUSTER_RESOURCE_CLASS rc; |
}; | | }; |
DWORD SubClass; | | DWORD SubClass; |
}; | | }; |
| | |
skipping to change at line 2048 | | skipping to change at line 2704 |
CLUSPROP_VALUE Value; | | CLUSPROP_VALUE Value; |
CLUSPROP_RESOURCE_CLASS ResClass; | | CLUSPROP_RESOURCE_CLASS ResClass; |
CLUSPROP_SZ ResTypeName; | | CLUSPROP_SZ ResTypeName; |
} CLUSPROP_REQUIRED_DEPENDENCY, *PCLUSPROP_REQUIRED_DEPENDENCY; | | } CLUSPROP_REQUIRED_DEPENDENCY, *PCLUSPROP_REQUIRED_DEPENDENCY; |
| | |
typedef CLUSPROP_DWORD CLUSPROP_DISK_NUMBER, *PCLUSPROP_DISK_NUMBER; | | typedef CLUSPROP_DWORD CLUSPROP_DISK_NUMBER, *PCLUSPROP_DISK_NUMBER; |
| | |
#endif // MIDL_PASS | | #endif // MIDL_PASS |
#endif // _CLUSTER_API_TYPES_ | | #endif // _CLUSTER_API_TYPES_ |
| | |
|
//#ifdef MIDL_PASS | | |
//#ifndef MAX_PATH | | |
//#define MAX_PATH 260 | | |
//#endif | | |
//#endif // if MIDL_PASS | | |
| | |
#ifndef _CLUSTER_API_TYPES_ | | #ifndef _CLUSTER_API_TYPES_ |
| | |
// Disk partition information flags. | | // Disk partition information flags. |
typedef enum CLUSPROP_PIFLAGS { | | typedef enum CLUSPROP_PIFLAGS { |
CLUSPROP_PIFLAG_STICKY = 0x00000001, | | CLUSPROP_PIFLAG_STICKY = 0x00000001, |
CLUSPROP_PIFLAG_REMOVABLE = 0x00000002, | | CLUSPROP_PIFLAG_REMOVABLE = 0x00000002, |
CLUSPROP_PIFLAG_USABLE = 0x00000004, | | CLUSPROP_PIFLAG_USABLE = 0x00000004, |
CLUSPROP_PIFLAG_DEFAULT_QUORUM = 0x00000008 | | CLUSPROP_PIFLAG_DEFAULT_QUORUM = 0x00000008 |
} CLUSPROP_PIFLAGS; | | } CLUSPROP_PIFLAGS; |
| | |
|
#ifndef MIDL_PASS | | #if ( !MIDL_PASS && !__midl ) |
//force quorum information, useful for QON type resources | | //force quorum information, useful for QON type resources |
//to be able to continue operation without the quorum | | //to be able to continue operation without the quorum |
typedef struct CLUS_FORCE_QUORUM_INFO { | | typedef struct CLUS_FORCE_QUORUM_INFO { |
|
DWORD dwSize; // size of this struct including the node
s list. | | DWORD dwSize; // size of this struct including the nod
es list. |
DWORD dwNodeBitMask; // a bit mask representing the max assum
ed node set | | DWORD dwNodeBitMask; // a bit mask representing the max assum
ed node set |
DWORD dwMaxNumberofNodes; // the number of bits set in the mask | | DWORD dwMaxNumberofNodes; // the number of bits set in the mask |
WCHAR multiszNodeList[1]; // Multi sz list of nodes | | WCHAR multiszNodeList[1]; // Multi sz list of nodes |
} CLUS_FORCE_QUORUM_INFO, *PCLUS_FORCE_QUORUM_INFO; | | } CLUS_FORCE_QUORUM_INFO, *PCLUS_FORCE_QUORUM_INFO; |
| | |
// Disk partition information. | | // Disk partition information. |
typedef struct CLUS_PARTITION_INFO { | | typedef struct CLUS_PARTITION_INFO { |
DWORD dwFlags; | | DWORD dwFlags; |
WCHAR szDeviceName[MAX_PATH]; | | WCHAR szDeviceName[MAX_PATH]; |
WCHAR szVolumeLabel[MAX_PATH]; | | WCHAR szVolumeLabel[MAX_PATH]; |
DWORD dwSerialNumber; | | DWORD dwSerialNumber; |
DWORD rgdwMaximumComponentLength; | | DWORD rgdwMaximumComponentLength; |
DWORD dwFileSystemFlags; | | DWORD dwFileSystemFlags; |
WCHAR szFileSystem[32]; | | WCHAR szFileSystem[32]; |
} CLUS_PARTITION_INFO, *PCLUS_PARTITION_INFO; | | } CLUS_PARTITION_INFO, *PCLUS_PARTITION_INFO; |
| | |
|
| | // Disk partition information ex |
| | typedef struct CLUS_PARTITION_INFO_EX { |
| | DWORD dwFlags; |
| | WCHAR szDeviceName[MAX_PATH]; |
| | WCHAR szVolumeLabel[MAX_PATH]; |
| | DWORD dwSerialNumber; |
| | DWORD rgdwMaximumComponentLength; |
| | DWORD dwFileSystemFlags; |
| | WCHAR szFileSystem[32]; |
| | ULARGE_INTEGER TotalSizeInBytes; |
| | ULARGE_INTEGER FreeSizeInBytes; |
| | DWORD DeviceNumber; |
| | DWORD PartitionNumber; |
| | GUID VolumeGuid; |
| | } CLUS_PARTITION_INFO_EX, *PCLUS_PARTITION_INFO_EX; |
| | |
// Disk partition information property value. | | // Disk partition information property value. |
#ifdef __cplusplus | | #ifdef __cplusplus |
typedef struct CLUSPROP_PARTITION_INFO | | typedef struct CLUSPROP_PARTITION_INFO |
: public CLUSPROP_VALUE | | : public CLUSPROP_VALUE |
, public CLUS_PARTITION_INFO { | | , public CLUS_PARTITION_INFO { |
#else | | #else |
typedef struct CLUSPROP_PARTITION_INFO { | | typedef struct CLUSPROP_PARTITION_INFO { |
CLUSPROP_VALUE; | | CLUSPROP_VALUE; |
CLUS_PARTITION_INFO; | | CLUS_PARTITION_INFO; |
#endif | | #endif |
} CLUSPROP_PARTITION_INFO, *PCLUSPROP_PARTITION_INFO; | | } CLUSPROP_PARTITION_INFO, *PCLUSPROP_PARTITION_INFO; |
| | |
|
| | // Disk partition information ex property value. |
| | #ifdef __cplusplus |
| | typedef struct CLUSPROP_PARTITION_INFO_EX |
| | : public CLUSPROP_VALUE |
| | , public CLUS_PARTITION_INFO_EX { |
| | #else |
| | typedef struct CLUSPROP_PARTITION_INFO_EX { |
| | CLUSPROP_VALUE; |
| | CLUS_PARTITION_INFO_EX; |
| | #endif |
| | } CLUSPROP_PARTITION_INFO_EX; |
| | |
| | typedef CLUSPROP_PARTITION_INFO_EX UNALIGNED *PCLUSPROP_PARTITION_INFO_EX; |
// | | // |
// FT set information. | | // FT set information. |
// | | // |
typedef struct CLUS_FTSET_INFO { | | typedef struct CLUS_FTSET_INFO { |
DWORD dwRootSignature; | | DWORD dwRootSignature; |
DWORD dwFtType; | | DWORD dwFtType; |
} CLUS_FTSET_INFO, *PCLUS_FTSET_INFO; | | } CLUS_FTSET_INFO, *PCLUS_FTSET_INFO; |
| | |
// Disk partition information property value. | | // Disk partition information property value. |
#ifdef __cplusplus | | #ifdef __cplusplus |
| | |
skipping to change at line 2155 | | skipping to change at line 2834 |
// | | // |
// input structure for CLUSCTL_RESOURCE_NETNAME_GET_VIRTUAL_SERVER_TOKEN | | // input structure for CLUSCTL_RESOURCE_NETNAME_GET_VIRTUAL_SERVER_TOKEN |
// | | // |
typedef struct CLUS_NETNAME_VS_TOKEN_INFO { | | typedef struct CLUS_NETNAME_VS_TOKEN_INFO { |
DWORD ProcessID; | | DWORD ProcessID; |
DWORD DesiredAccess; | | DWORD DesiredAccess; |
BOOL InheritHandle; | | BOOL InheritHandle; |
} CLUS_NETNAME_VS_TOKEN_INFO, *PCLUS_NETNAME_VS_TOKEN_INFO; | | } CLUS_NETNAME_VS_TOKEN_INFO, *PCLUS_NETNAME_VS_TOKEN_INFO; |
| | |
// | | // |
|
| | // input structure for CLUSCTL_RESOURCE_NETNAME_SET_PWD |
| | // |
| | #define MAX_OBJECTID 64 |
| | #define MAX_CO_PASSWORD_LENGTH 16 |
| | #define GUID_PRESENT 0x1 |
| | #define CREATEDC_PRESENT 0x2 |
| | |
| | #define MAX_CREATINGDC_LENGTH 256 |
| | |
| | typedef struct CLUS_NETNAME_PWD_INFO { |
| | DWORD Flags; |
| | WCHAR Password[MAX_CO_PASSWORD_LENGTH]; |
| | WCHAR CreatingDC[MAX_CREATINGDC_LENGTH+2]; // including the '\\' prefix |
| | WCHAR ObjectGuid[MAX_OBJECTID]; // |
| | } CLUS_NETNAME_PWD_INFO, *PCLUS_NETNAME_PWD_INFO; |
| | |
| | // |
// input/output structure associated with Maintenance Mode | | // input/output structure associated with Maintenance Mode |
// | | // |
typedef struct CLUS_MAINTENANCE_MODE_INFO { | | typedef struct CLUS_MAINTENANCE_MODE_INFO { |
BOOL InMaintenance; | | BOOL InMaintenance; |
} CLUS_MAINTENANCE_MODE_INFO, *PCLUS_MAINTENANCE_MODE_INFO; | | } CLUS_MAINTENANCE_MODE_INFO, *PCLUS_MAINTENANCE_MODE_INFO; |
| | |
|
| | #define MAINTENANCE_MODE_V2_SIG 0xabbaf00f |
| | |
| | typedef enum _MAINTENANCE_MODE_TYPE_ENUM { |
| | MaintenanceModeTypeDisableIsAliveCheck=1, |
| | MaintenanceModeTypeOfflineResource=2, |
| | MaintenanceModeTypeUnclusterResource=3, |
| | } MAINTENANCE_MODE_TYPE_ENUM, *PMAINTENANCE_MODE_TYPE_ENUM; |
| | |
| | typedef struct _CLUS_MAINTENANCE_MODE_INFOEX { |
| | BOOL InMaintenance; |
| | MAINTENANCE_MODE_TYPE_ENUM MaintainenceModeType; |
| | CLUSTER_RESOURCE_STATE InternalState; |
| | DWORD Signature; |
| | } CLUS_MAINTENANCE_MODE_INFOEX, *PCLUS_MAINTENANCE_MODE_INFOEX; |
| | |
| | typedef struct _CLUS_STORAGE_SET_DRIVELETTER { |
| | DWORD PartitionNumber; |
| | DWORD DriveLetterMask; |
| | } CLUS_STORAGE_SET_DRIVELETTER, *PCLUS_STORAGE_SET_DRIVELETTER; |
| | |
| | typedef struct _CLUS_STORAGE_GET_AVAILABLE_DRIVELETTERS { |
| | DWORD AvailDrivelettersMask; |
| | } CLUS_STORAGE_GET_AVAILABLE_DRIVELETTERS, *PCLUS_STORAGE_GET_AVAILABLE_DRIVELET |
| | TERS; |
| | |
| | typedef struct _CLUS_STORAGE_REMAP_DRIVELETTER { |
| | DWORD CurrentDriveLetterMask; |
| | DWORD TargetDriveLetterMask; |
| | } CLUS_STORAGE_REMAP_DRIVELETTER, *PCLUS_STORAGE_REMAP_DRIVELETTER; |
| | |
| | typedef struct _CLUS_PROVIDER_STATE_CHANGE_INFO { |
| | DWORD dwSize; // size of this struct including |
| | the provider name. |
| | CLUSTER_RESOURCE_STATE resourceState; |
| | WCHAR szProviderId[1]; |
| | } CLUS_PROVIDER_STATE_CHANGE_INFO, *PCLUS_PROVIDER_STATE_CHANGE_INFO; |
| | |
// Beginning of a property list. | | // Beginning of a property list. |
typedef struct CLUSPROP_LIST { | | typedef struct CLUSPROP_LIST { |
DWORD nPropertyCount; | | DWORD nPropertyCount; |
CLUSPROP_PROPERTY_NAME PropertyName; | | CLUSPROP_PROPERTY_NAME PropertyName; |
} CLUSPROP_LIST, *PCLUSPROP_LIST; | | } CLUSPROP_LIST, *PCLUSPROP_LIST; |
| | |
|
| | // |
| | // values for IP Address' EnableNetbios property |
| | // |
| | typedef enum CLUSPROP_IPADDR_ENABLENETBIOS { |
| | CLUSPROP_IPADDR_ENABLENETBIOS_DISABLED = 0, |
| | CLUSPROP_IPADDR_ENABLENETBIOS_ENABLED, |
| | CLUSPROP_IPADDR_ENABLENETBIOS_TRACK_NIC |
| | } CLUSPROP_IPADDR_ENABLENETBIOS; |
| | |
// Helper for building or parsing a property list buffer. | | // Helper for building or parsing a property list buffer. |
typedef union CLUSPROP_BUFFER_HELPER { | | typedef union CLUSPROP_BUFFER_HELPER { |
BYTE * pb; | | BYTE * pb; |
WORD * pw; | | WORD * pw; |
DWORD * pdw; | | DWORD * pdw; |
LONG * pl; | | LONG * pl; |
LPWSTR psz; | | LPWSTR psz; |
PCLUSPROP_LIST pList; | | PCLUSPROP_LIST pList; |
PCLUSPROP_SYNTAX pSyntax; | | PCLUSPROP_SYNTAX pSyntax; |
PCLUSPROP_PROPERTY_NAME pName; | | PCLUSPROP_PROPERTY_NAME pName; |
| | |
skipping to change at line 2194 | | skipping to change at line 2934 |
PCLUSPROP_SZ pStringValue; | | PCLUSPROP_SZ pStringValue; |
PCLUSPROP_MULTI_SZ pMultiSzValue; | | PCLUSPROP_MULTI_SZ pMultiSzValue; |
PCLUSPROP_SECURITY_DESCRIPTOR pSecurityDescriptor; | | PCLUSPROP_SECURITY_DESCRIPTOR pSecurityDescriptor; |
PCLUSPROP_RESOURCE_CLASS pResourceClassValue; | | PCLUSPROP_RESOURCE_CLASS pResourceClassValue; |
PCLUSPROP_RESOURCE_CLASS_INFO pResourceClassInfoValue; | | PCLUSPROP_RESOURCE_CLASS_INFO pResourceClassInfoValue; |
PCLUSPROP_DISK_SIGNATURE pDiskSignatureValue; | | PCLUSPROP_DISK_SIGNATURE pDiskSignatureValue; |
PCLUSPROP_SCSI_ADDRESS pScsiAddressValue; | | PCLUSPROP_SCSI_ADDRESS pScsiAddressValue; |
PCLUSPROP_DISK_NUMBER pDiskNumberValue; | | PCLUSPROP_DISK_NUMBER pDiskNumberValue; |
PCLUSPROP_PARTITION_INFO pPartitionInfoValue; | | PCLUSPROP_PARTITION_INFO pPartitionInfoValue; |
PCLUSPROP_REQUIRED_DEPENDENCY pRequiredDependencyValue; | | PCLUSPROP_REQUIRED_DEPENDENCY pRequiredDependencyValue; |
|
| | PCLUSPROP_PARTITION_INFO_EX pPartitionInfoValueEx; |
| | PCLUSPROP_FILETIME pFileTimeValue; |
} CLUSPROP_BUFFER_HELPER, *PCLUSPROP_BUFFER_HELPER; | | } CLUSPROP_BUFFER_HELPER, *PCLUSPROP_BUFFER_HELPER; |
| | |
#endif // MIDL_PASS | | #endif // MIDL_PASS |
| | |
#endif // _CLUSTER_API_TYPES_ | | #endif // _CLUSTER_API_TYPES_ |
| | |
// Macro for aligning CLUSPROP buffers on a DWORD boundary. | | // Macro for aligning CLUSPROP buffers on a DWORD boundary. |
#define ALIGN_CLUSPROP( count ) ((count + 3) & ~3) | | #define ALIGN_CLUSPROP( count ) ((count + 3) & ~3) |
| | |
// Macros for declaring array format values | | // Macros for declaring array format values |
| | |
skipping to change at line 2246 | | skipping to change at line 2988 |
} CLUSTER_RESOURCE_ENUM; | | } CLUSTER_RESOURCE_ENUM; |
| | |
typedef enum CLUSTER_RESOURCE_TYPE_ENUM { | | typedef enum CLUSTER_RESOURCE_TYPE_ENUM { |
CLUSTER_RESOURCE_TYPE_ENUM_NODES = 0x00000001, | | CLUSTER_RESOURCE_TYPE_ENUM_NODES = 0x00000001, |
| | |
CLUSTER_RESOURCE_TYPE_ENUM_ALL = (CLUSTER_RESOURCE_TYPE_ENUM_NODES) | | CLUSTER_RESOURCE_TYPE_ENUM_ALL = (CLUSTER_RESOURCE_TYPE_ENUM_NODES) |
} CLUSTER_RESOURCE_TYPE_ENUM; | | } CLUSTER_RESOURCE_TYPE_ENUM; |
| | |
#endif // _CLUSTER_API_TYPES_ | | #endif // _CLUSTER_API_TYPES_ |
| | |
|
#ifndef MIDL_PASS | | #if ( !MIDL_PASS && !__midl ) |
HRESENUM | | HRESENUM |
WINAPI | | WINAPI |
ClusterResourceOpenEnum( | | ClusterResourceOpenEnum( |
|
IN HRESOURCE hResource, | | __in HRESOURCE hResource, |
IN DWORD dwType | | __in DWORD dwType |
| | ); |
| | |
| | typedef HRESENUM |
| | (WINAPI * PCLUSAPI_CLUSTER_RESOURCE_OPEN_ENUM)( |
| | HRESOURCE hResource, |
| | DWORD dwType |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
ClusterResourceGetEnumCount( | | ClusterResourceGetEnumCount( |
|
IN HRESENUM hResEnum | | __in HRESENUM hResEnum |
); | | ); |
| | |
|
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_CLUSTER_RESOURCE_GET_ENUM_COUNT)( |
| | __in HRESENUM hResEnum |
| | ); |
| | |
| | __success(return == ERROR_SUCCESS) |
DWORD | | DWORD |
WINAPI | | WINAPI |
ClusterResourceEnum( | | ClusterResourceEnum( |
__in HRESENUM hResEnum, | | __in HRESENUM hResEnum, |
__in DWORD dwIndex, | | __in DWORD dwIndex, |
__out LPDWORD lpdwType, | | __out LPDWORD lpdwType, |
__out_ecount_part(*lpcchName, *lpcchName + 1) LPWSTR lpszName, | | __out_ecount_part(*lpcchName, *lpcchName + 1) LPWSTR lpszName, |
__inout LPDWORD lpcchName | | __inout LPDWORD lpcchName |
); | | ); |
| | |
|
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_CLUSTER_RESOURCE_ENUM)( |
| | __in HRESENUM hResEnum, |
| | __in DWORD dwIndex, |
| | __out LPDWORD lpdwType, |
| | __out_ecount_part(*lpcchName, *lpcchName + 1) LPWSTR lpszName, |
| | __inout LPDWORD lpcchName |
| | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
ClusterResourceCloseEnum( | | ClusterResourceCloseEnum( |
|
IN HRESENUM hResEnum | | __in HRESENUM hResEnum |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_CLUSTER_RESOURCE_CLOSE_ENUM)( |
| | HRESENUM hResEnum |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
CreateClusterResourceType( | | CreateClusterResourceType( |
|
IN HCLUSTER hCluster, | | __in HCLUSTER hCluster, |
IN LPCWSTR lpszResourceTypeName, | | __in LPCWSTR lpszResourceTypeName, |
IN LPCWSTR lpszDisplayName, | | __in LPCWSTR lpszDisplayName, |
IN LPCWSTR lpszResourceTypeDll, | | __in LPCWSTR lpszResourceTypeDll, |
IN DWORD dwLooksAlivePollInterval, | | __in DWORD dwLooksAlivePollInterval, |
IN DWORD dwIsAlivePollInterval | | __in DWORD dwIsAlivePollInterval |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_CREATE_CLUSTER_RESOURCE_TYPE)( |
| | __in HCLUSTER hCluster, |
| | __in LPCWSTR lpszResourceTypeName, |
| | __in LPCWSTR lpszDisplayName, |
| | __in LPCWSTR lpszResourceTypeDll, |
| | __in DWORD dwLooksAlivePollInterval, |
| | __in DWORD dwIsAlivePollInterval |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
DeleteClusterResourceType( | | DeleteClusterResourceType( |
|
IN HCLUSTER hCluster, | | __in HCLUSTER hCluster, |
IN LPCWSTR lpszResourceTypeName | | __in LPCWSTR lpszResourceTypeName |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_DELETE_CLUSTER_RESOURCE_TYPE)( |
| | HCLUSTER hCluster, |
| | LPCWSTR lpszResourceTypeName |
); | | ); |
| | |
HRESTYPEENUM | | HRESTYPEENUM |
WINAPI | | WINAPI |
ClusterResourceTypeOpenEnum( | | ClusterResourceTypeOpenEnum( |
|
IN HCLUSTER hCluster, | | __in HCLUSTER hCluster, |
IN LPCWSTR lpszResourceTypeName, | | __in LPCWSTR lpszResourceTypeName, |
IN DWORD dwType | | __in DWORD dwType |
| | ); |
| | |
| | typedef HRESTYPEENUM |
| | (WINAPI * PCLUSAPI_CLUSTER_RESOURCE_TYPE_OPEN_ENUM)( |
| | __in HCLUSTER hCluster, |
| | __in LPCWSTR lpszResourceTypeName, |
| | __in DWORD dwType |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
ClusterResourceTypeGetEnumCount( | | ClusterResourceTypeGetEnumCount( |
|
IN HRESTYPEENUM hResTypeEnum | | __in HRESTYPEENUM hResTypeEnum |
); | | ); |
| | |
|
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_CLUSTER_RESOURCE_TYPE_GET_ENUM_COUNT)( |
| | __in HRESTYPEENUM hResTypeEnum |
| | ); |
| | |
| | __success(return == ERROR_SUCCESS) |
DWORD | | DWORD |
WINAPI | | WINAPI |
ClusterResourceTypeEnum( | | ClusterResourceTypeEnum( |
__in HRESTYPEENUM hResTypeEnum, | | __in HRESTYPEENUM hResTypeEnum, |
__in DWORD dwIndex, | | __in DWORD dwIndex, |
__out LPDWORD lpdwType, | | __out LPDWORD lpdwType, |
__out_ecount_part(*lpcchName, *lpcchName + 1) LPWSTR lpszName, | | __out_ecount_part(*lpcchName, *lpcchName + 1) LPWSTR lpszName, |
__inout LPDWORD lpcchName | | __inout LPDWORD lpcchName |
); | | ); |
| | |
|
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_CLUSTER_RESOURCE_TYPE_ENUM)( |
| | __in HRESTYPEENUM hResTypeEnum, |
| | __in DWORD dwIndex, |
| | __out LPDWORD lpdwType, |
| | __out_ecount_part(*lpcchName, *lpcchName + 1) LPWSTR lpszName, |
| | __inout LPDWORD lpcchName |
| | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
ClusterResourceTypeCloseEnum( | | ClusterResourceTypeCloseEnum( |
|
IN HRESTYPEENUM hResTypeEnum | | __in HRESTYPEENUM hResTypeEnum |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_CLUSTER_RESOURCE_TYPE_CLOSE_ENUM)( |
| | __in HRESTYPEENUM hResTypeEnum |
); | | ); |
| | |
#endif // MIDL_PASS | | #endif // MIDL_PASS |
| | |
// | | // |
// Network-related structures and types. | | // Network-related structures and types. |
// | | // |
| | |
#ifndef _CLUSTER_API_TYPES_ | | #ifndef _CLUSTER_API_TYPES_ |
// | | // |
| | |
skipping to change at line 2362 | | skipping to change at line 3173 |
ClusterNetworkRoleClientAccess = 0x00000002, | | ClusterNetworkRoleClientAccess = 0x00000002, |
ClusterNetworkRoleInternalAndClient = 0x00000003 | | ClusterNetworkRoleInternalAndClient = 0x00000003 |
} CLUSTER_NETWORK_ROLE; | | } CLUSTER_NETWORK_ROLE; |
| | |
#endif // _CLUSTER_API_TYPES_ | | #endif // _CLUSTER_API_TYPES_ |
| | |
// | | // |
// Interfaces for managing the networks of a cluster. | | // Interfaces for managing the networks of a cluster. |
// | | // |
| | |
|
#ifndef MIDL_PASS | | #if ( !MIDL_PASS && !__midl ) |
HNETWORK | | HNETWORK |
WINAPI | | WINAPI |
OpenClusterNetwork( | | OpenClusterNetwork( |
|
IN HCLUSTER hCluster, | | __in HCLUSTER hCluster, |
IN LPCWSTR lpszNetworkName | | __in LPCWSTR lpszNetworkName |
| | ); |
| | |
| | typedef HNETWORK |
| | (WINAPI * PCLUSAPI_OPEN_CLUSTER_NETWORK)( |
| | __in HCLUSTER hCluster, |
| | __in LPCWSTR lpszNetworkName |
); | | ); |
| | |
BOOL | | BOOL |
WINAPI | | WINAPI |
CloseClusterNetwork( | | CloseClusterNetwork( |
|
IN HNETWORK hNetwork | | __in HNETWORK hNetwork |
| | ); |
| | |
| | typedef BOOL |
| | (WINAPI * PCLUSAPI_CLOSE_CLUSTER_NETWORK)( |
| | __in HNETWORK hNetwork |
); | | ); |
| | |
HCLUSTER | | HCLUSTER |
WINAPI | | WINAPI |
GetClusterFromNetwork( | | GetClusterFromNetwork( |
|
IN HNETWORK hNetwork | | __in HNETWORK hNetwork |
| | ); |
| | |
| | typedef HCLUSTER |
| | (WINAPI * PCLUSAPI_GET_CLUSTER_FROM_NETWORK)( |
| | __in HNETWORK hNetwork |
); | | ); |
| | |
HNETWORKENUM | | HNETWORKENUM |
WINAPI | | WINAPI |
ClusterNetworkOpenEnum( | | ClusterNetworkOpenEnum( |
|
IN HNETWORK hNetwork, | | __in HNETWORK hNetwork, |
IN DWORD dwType | | __in DWORD dwType |
| | ); |
| | |
| | typedef HNETWORKENUM |
| | (WINAPI * PCLUSAPI_CLUSTER_NETWORK_OPEN_ENUM)( |
| | __in HNETWORK hNetwork, |
| | __in DWORD dwType |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
ClusterNetworkGetEnumCount( | | ClusterNetworkGetEnumCount( |
|
IN HNETWORKENUM hNetworkEnum | | __in HNETWORKENUM hNetworkEnum |
); | | ); |
| | |
|
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_CLUSTER_NETWORK_GET_ENUM_COUNT)( |
| | __in HNETWORKENUM hNetworkEnum |
| | ); |
| | |
| | __success (return == ERROR_SUCCESS) |
DWORD | | DWORD |
WINAPI | | WINAPI |
ClusterNetworkEnum( | | ClusterNetworkEnum( |
__in HNETWORKENUM hNetworkEnum, | | __in HNETWORKENUM hNetworkEnum, |
__in DWORD dwIndex, | | __in DWORD dwIndex, |
__out LPDWORD lpdwType, | | __out LPDWORD lpdwType, |
__out_ecount_part(*lpcchName, *lpcchName + 1) LPWSTR lpszName, | | __out_ecount_part(*lpcchName, *lpcchName + 1) LPWSTR lpszName, |
__inout LPDWORD lpcchName | | __inout LPDWORD lpcchName |
); | | ); |
| | |
|
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_CLUSTER_NETWORK_ENUM)( |
| | __in HNETWORKENUM hNetworkEnum, |
| | __in DWORD dwIndex, |
| | __out LPDWORD lpdwType, |
| | __out_ecount_part(*lpcchName, *lpcchName + 1) LPWSTR lpszName, |
| | __inout LPDWORD lpcchName |
| | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
ClusterNetworkCloseEnum( | | ClusterNetworkCloseEnum( |
|
IN HNETWORKENUM hNetworkEnum | | __in HNETWORKENUM hNetworkEnum |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_CLUSTER_NETWORK_CLOSE_ENUM)( |
| | __in HNETWORKENUM hNetworkEnum |
); | | ); |
| | |
CLUSTER_NETWORK_STATE | | CLUSTER_NETWORK_STATE |
WINAPI | | WINAPI |
GetClusterNetworkState( | | GetClusterNetworkState( |
|
IN HNETWORK hNetwork | | __in HNETWORK hNetwork |
| | ); |
| | |
| | typedef CLUSTER_NETWORK_STATE |
| | (WINAPI * PCLUSAPI_GET_CLUSTER_NETWORK_STATE)( |
| | __in HNETWORK hNetwork |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
SetClusterNetworkName( | | SetClusterNetworkName( |
|
IN HNETWORK hNetwork, | | __in HNETWORK hNetwork, |
IN LPCWSTR lpszName | | __in LPCWSTR lpszName |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_SET_CLUSTER_NETWORK_NAME)( |
| | __in HNETWORK hNetwork, |
| | __in LPCWSTR lpszName |
); | | ); |
| | |
|
| | __success(return == ERROR_SUCCESS) |
DWORD | | DWORD |
WINAPI | | WINAPI |
GetClusterNetworkId( | | GetClusterNetworkId( |
__in HNETWORK hNetwork, | | __in HNETWORK hNetwork, |
__out_ecount_part(*lpcchName, *lpcchName + 1) LPWSTR lpszNetworkId, | | __out_ecount_part(*lpcchName, *lpcchName + 1) LPWSTR lpszNetworkId, |
__inout LPDWORD lpcchName | | __inout LPDWORD lpcchName |
); | | ); |
| | |
|
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_GET_CLUSTER_NETWORK_ID)( |
| | __in HNETWORK hNetwork, |
| | __out_ecount_part(*lpcchName, *lpcchName + 1) LPWSTR lpszNetworkId, |
| | __inout LPDWORD lpcchName |
| | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
ClusterNetworkControl( | | ClusterNetworkControl( |
__in HNETWORK hNetwork, | | __in HNETWORK hNetwork, |
__in_opt HNODE hHostNode, | | __in_opt HNODE hHostNode, |
__in DWORD dwControlCode, | | __in DWORD dwControlCode, |
__in_bcount_opt(nInBufferSize) LPVOID lpInBuffer, | | __in_bcount_opt(nInBufferSize) LPVOID lpInBuffer, |
__in DWORD nInBufferSize, | | __in DWORD nInBufferSize, |
__out_bcount_part_opt(nOutBufferSize, *lpBytesReturned) LPVOID lpOutBuffer, | | __out_bcount_part_opt(nOutBufferSize, *lpBytesReturned) LPVOID lpOutBuffer, |
__in DWORD nOutBufferSize, | | __in DWORD nOutBufferSize, |
|
__out LPDWORD lpBytesReturned | | __out_opt LPDWORD lpBytesReturned |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_CLUSTER_NETWORK_CONTROL)( |
| | __in HNETWORK hNetwork, |
| | __in_opt HNODE hHostNode, |
| | __in DWORD dwControlCode, |
| | __in_bcount_opt(nInBufferSize) LPVOID lpInBuffer, |
| | __in DWORD nInBufferSize, |
| | __out_bcount_part_opt(nOutBufferSize, *lpBytesReturned) LPVOID lpOutBuffer, |
| | __in DWORD nOutBufferSize, |
| | __out_opt LPDWORD lpBytesReturned |
); | | ); |
|
| | |
#endif // MIDL_PASS | | #endif // MIDL_PASS |
| | |
#ifndef _CLUSTER_API_TYPES_ | | #ifndef _CLUSTER_API_TYPES_ |
// | | // |
// Network interface-related structures and types. | | // Network interface-related structures and types. |
// | | // |
typedef enum CLUSTER_NETINTERFACE_STATE { | | typedef enum CLUSTER_NETINTERFACE_STATE { |
ClusterNetInterfaceStateUnknown = -1, | | ClusterNetInterfaceStateUnknown = -1, |
ClusterNetInterfaceUnavailable, | | ClusterNetInterfaceUnavailable, |
ClusterNetInterfaceFailed, | | ClusterNetInterfaceFailed, |
| | |
skipping to change at line 2464 | | skipping to change at line 3349 |
ClusterNetInterfaceUnreachable, | | ClusterNetInterfaceUnreachable, |
ClusterNetInterfaceUp | | ClusterNetInterfaceUp |
} CLUSTER_NETINTERFACE_STATE; | | } CLUSTER_NETINTERFACE_STATE; |
| | |
#endif // _CLUSTER_API_TYPES_ | | #endif // _CLUSTER_API_TYPES_ |
| | |
// | | // |
// Interfaces for managing the network interfaces of a cluster. | | // Interfaces for managing the network interfaces of a cluster. |
// | | // |
| | |
|
#ifndef MIDL_PASS | | #if ( !MIDL_PASS && !__midl ) |
HNETINTERFACE | | HNETINTERFACE |
WINAPI | | WINAPI |
OpenClusterNetInterface( | | OpenClusterNetInterface( |
|
IN HCLUSTER hCluster, | | __in HCLUSTER hCluster, |
IN LPCWSTR lpszInterfaceName | | __in LPCWSTR lpszInterfaceName |
); | | ); |
| | |
|
| | typedef HNETINTERFACE |
| | (WINAPI * PCLUSAPI_OPEN_CLUSTER_NET_INTERFACE)( |
| | __in HCLUSTER hCluster, |
| | __in LPCWSTR lpszInterfaceName |
| | ); |
| | |
| | __success(return == ERROR_SUCCESS) |
DWORD | | DWORD |
WINAPI | | WINAPI |
GetClusterNetInterface( | | GetClusterNetInterface( |
__in HCLUSTER hCluster, | | __in HCLUSTER hCluster, |
__in LPCWSTR lpszNodeName, | | __in LPCWSTR lpszNodeName, |
__in LPCWSTR lpszNetworkName, | | __in LPCWSTR lpszNetworkName, |
__out_ecount_part(*lpcchInterfaceName, *lpcchInterfaceName + 1) LPWSTR lpszI
nterfaceName, | | __out_ecount_part(*lpcchInterfaceName, *lpcchInterfaceName + 1) LPWSTR lpszI
nterfaceName, |
__inout LPDWORD lpcchInterfaceName | | __inout LPDWORD lpcchInterfaceName |
); | | ); |
| | |
|
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_GET_CLUSTER_NET_INTERFACE)( |
| | __in HCLUSTER hCluster, |
| | __in LPCWSTR lpszNodeName, |
| | __in LPCWSTR lpszNetworkName, |
| | __out_ecount_part_opt(*lpcchInterfaceName, *lpcchInterfaceName + 1) LPWSTR l |
| | pszInterfaceName, |
| | __inout LPDWORD lpcchInterfaceName |
| | ); |
| | |
BOOL | | BOOL |
WINAPI | | WINAPI |
CloseClusterNetInterface( | | CloseClusterNetInterface( |
|
IN HNETINTERFACE hNetInterface | | __in HNETINTERFACE hNetInterface |
| | ); |
| | |
| | typedef BOOL |
| | (WINAPI * PCLUSAPI_CLOSE_CLUSTER_NET_INTERFACE)( |
| | __in HNETINTERFACE hNetInterface |
); | | ); |
| | |
HCLUSTER | | HCLUSTER |
WINAPI | | WINAPI |
GetClusterFromNetInterface( | | GetClusterFromNetInterface( |
|
IN HNETINTERFACE hNetInterface | | __in HNETINTERFACE hNetInterface |
| | ); |
| | |
| | typedef HCLUSTER |
| | (WINAPI * PCLUSAPI_GET_CLUSTER_FROM_NET_INTERFACE)( |
| | __in HNETINTERFACE hNetInterface |
); | | ); |
| | |
CLUSTER_NETINTERFACE_STATE | | CLUSTER_NETINTERFACE_STATE |
WINAPI | | WINAPI |
GetClusterNetInterfaceState( | | GetClusterNetInterfaceState( |
|
IN HNETINTERFACE hNetInterface | | __in HNETINTERFACE hNetInterface |
| | ); |
| | |
| | typedef CLUSTER_NETINTERFACE_STATE |
| | (WINAPI * PCLUSAPI_GET_CLUSTER_NET_INTERFACE_STATE)( |
| | __in HNETINTERFACE hNetInterface |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
ClusterNetInterfaceControl( | | ClusterNetInterfaceControl( |
__in HNETINTERFACE hNetInterface, | | __in HNETINTERFACE hNetInterface, |
__in_opt HNODE hHostNode, | | __in_opt HNODE hHostNode, |
__in DWORD dwControlCode, | | __in DWORD dwControlCode, |
__in_bcount_opt(nInBufferSize) LPVOID lpInBuffer, | | __in_bcount_opt(nInBufferSize) LPVOID lpInBuffer, |
__in DWORD nInBufferSize, | | __in DWORD nInBufferSize, |
__out_bcount_part_opt(nOutBufferSize, *lpBytesReturned) LPVOID lpOutBuffer, | | __out_bcount_part_opt(nOutBufferSize, *lpBytesReturned) LPVOID lpOutBuffer, |
__in DWORD nOutBufferSize, | | __in DWORD nOutBufferSize, |
|
__out LPDWORD lpBytesReturned | | __out_opt LPDWORD lpBytesReturned |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_CLUSTER_NET_INTERFACE_CONTROL)( |
| | __in HNETINTERFACE hNetInterface, |
| | __in_opt HNODE hHostNode, |
| | __in DWORD dwControlCode, |
| | __in_bcount_opt(nInBufferSize) LPVOID lpInBuffer, |
| | __in DWORD nInBufferSize, |
| | __out_bcount_part_opt(nOutBufferSize, *lpBytesReturned) LPVOID lpOutBuffer, |
| | __in DWORD nOutBufferSize, |
| | __out_opt LPDWORD lpBytesReturned |
); | | ); |
#endif // MIDL_PASS | | #endif // MIDL_PASS |
| | |
// | | // |
// Cluster registry update and access routines | | // Cluster registry update and access routines |
// | | // |
| | |
|
#ifndef MIDL_PASS | | #if ( !MIDL_PASS && !__midl ) |
HKEY | | HKEY |
WINAPI | | WINAPI |
GetClusterKey( | | GetClusterKey( |
|
IN HCLUSTER hCluster, | | __in HCLUSTER hCluster, |
IN REGSAM samDesired | | __in REGSAM samDesired |
); | | ); |
| | |
|
| | typedef HKEY |
| | (WINAPI * PCLUSAPI_GET_CLUSTER_KEY)( |
| | HCLUSTER hCluster, |
| | REGSAM samDesired |
| | ); |
| | |
HKEY | | HKEY |
WINAPI | | WINAPI |
GetClusterGroupKey( | | GetClusterGroupKey( |
|
IN HGROUP hGroup, | | __in HGROUP hGroup, |
IN REGSAM samDesired | | __in REGSAM samDesired |
| | ); |
| | |
| | typedef HKEY |
| | (WINAPI * PCLUSAPI_GET_CLUSTER_GROUP_KEY)( |
| | HGROUP hGroup, |
| | REGSAM samDesired |
); | | ); |
| | |
HKEY | | HKEY |
WINAPI | | WINAPI |
GetClusterResourceKey( | | GetClusterResourceKey( |
|
IN HRESOURCE hResource, | | __in HRESOURCE hResource, |
IN REGSAM samDesired | | __in REGSAM samDesired |
| | ); |
| | |
| | typedef HKEY |
| | (WINAPI * PCLUSAPI_GET_CLUSTER_RESOURCE_KEY)( |
| | HRESOURCE hResource, |
| | REGSAM samDesired |
); | | ); |
| | |
HKEY | | HKEY |
WINAPI | | WINAPI |
GetClusterNodeKey( | | GetClusterNodeKey( |
|
IN HNODE hNode, | | __in HNODE hNode, |
IN REGSAM samDesired | | __in REGSAM samDesired |
| | ); |
| | |
| | typedef HKEY |
| | (WINAPI * PCLUSAPI_GET_CLUSTER_NODE_KEY)( |
| | HNODE hNode, |
| | REGSAM samDesired |
); | | ); |
| | |
HKEY | | HKEY |
WINAPI | | WINAPI |
GetClusterNetworkKey( | | GetClusterNetworkKey( |
|
IN HNETWORK hNetwork, | | __in HNETWORK hNetwork, |
IN REGSAM samDesired | | __in REGSAM samDesired |
| | ); |
| | |
| | typedef HKEY |
| | (WINAPI * PCLUSAPI_GET_CLUSTER_NETWORK_KEY)( |
| | __in HNETWORK hNetwork, |
| | __in REGSAM samDesired |
); | | ); |
| | |
HKEY | | HKEY |
WINAPI | | WINAPI |
GetClusterNetInterfaceKey( | | GetClusterNetInterfaceKey( |
|
IN HNETINTERFACE hNetInterface, | | __in HNETINTERFACE hNetInterface, |
IN REGSAM samDesired | | __in REGSAM samDesired |
| | ); |
| | |
| | typedef HKEY |
| | (WINAPI * PCLUSAPI_GET_CLUSTER_NET_INTERFACE_KEY)( |
| | __in HNETINTERFACE hNetInterface, |
| | __in REGSAM samDesired |
); | | ); |
| | |
LONG | | LONG |
WINAPI | | WINAPI |
ClusterRegCreateKey( | | ClusterRegCreateKey( |
|
IN HKEY hKey, | | __in HKEY hKey, |
IN LPCWSTR lpszSubKey, | | __in LPCWSTR lpszSubKey, |
IN DWORD dwOptions, | | __in DWORD dwOptions, |
IN REGSAM samDesired, | | __in REGSAM samDesired, |
IN LPSECURITY_ATTRIBUTES lpSecurityAttributes, | | __in_opt LPSECURITY_ATTRIBUTES lpSecurityAttributes, |
OUT PHKEY phkResult, | | __out PHKEY phkResult, |
OUT OPTIONAL LPDWORD lpdwDisposition | | __out_opt LPDWORD lpdwDisposition |
| | ); |
| | |
| | typedef LONG |
| | (WINAPI * PCLUSAPI_CLUSTER_REG_CREATE_KEY)( |
| | __in HKEY hKey, |
| | __in LPCWSTR lpszSubKey, |
| | __in DWORD dwOptions, |
| | __in REGSAM samDesired, |
| | __in_opt LPSECURITY_ATTRIBUTES lpSecurityAttributes, |
| | __out PHKEY phkResult, |
| | __out_opt LPDWORD lpdwDisposition |
); | | ); |
| | |
LONG | | LONG |
WINAPI | | WINAPI |
ClusterRegOpenKey( | | ClusterRegOpenKey( |
|
IN HKEY hKey, | | __in HKEY hKey, |
IN LPCWSTR lpszSubKey, | | __in LPCWSTR lpszSubKey, |
IN REGSAM samDesired, | | __in REGSAM samDesired, |
OUT PHKEY phkResult | | __out PHKEY phkResult |
| | ); |
| | |
| | typedef LONG |
| | (WINAPI * PCLUSAPI_CLUSTER_REG_OPEN_KEY)( |
| | HKEY hKey, |
| | LPCWSTR lpszSubKey, |
| | REGSAM samDesired, |
| | PHKEY phkResult |
); | | ); |
| | |
LONG | | LONG |
WINAPI | | WINAPI |
ClusterRegDeleteKey( | | ClusterRegDeleteKey( |
|
IN HKEY hKey, | | __in HKEY hKey, |
IN LPCWSTR lpszSubKey | | __in LPCWSTR lpszSubKey |
| | ); |
| | |
| | typedef LONG |
| | (WINAPI * PCLUSAPI_CLUSTER_REG_DELETE_KEY)( |
| | HKEY hKey, |
| | LPCWSTR lpszSubKey |
); | | ); |
| | |
LONG | | LONG |
WINAPI | | WINAPI |
ClusterRegCloseKey( | | ClusterRegCloseKey( |
|
IN HKEY hKey | | __in HKEY hKey |
); | | ); |
| | |
|
| | typedef LONG |
| | (WINAPI * PCLUSAPI_CLUSTER_REG_CLOSE_KEY)( |
| | HKEY hKey |
| | ); |
| | |
| | __success(return == ERROR_SUCCESS) |
LONG | | LONG |
WINAPI | | WINAPI |
ClusterRegEnumKey( | | ClusterRegEnumKey( |
__in HKEY hKey, | | __in HKEY hKey, |
__in DWORD dwIndex, | | __in DWORD dwIndex, |
__out_ecount_part(*lpcchName, *lpcchName + 1) LPWSTR lpszName, | | __out_ecount_part(*lpcchName, *lpcchName + 1) LPWSTR lpszName, |
__inout LPDWORD lpcchName, | | __inout LPDWORD lpcchName, |
|
| | __out_opt PFILETIME lpftLastWriteTime |
| | ); |
| | |
| | typedef LONG |
| | (WINAPI * PCLUSAPI_CLUSTER_REG_ENUM_KEY)( |
| | __in HKEY hKey, |
| | __in DWORD dwIndex, |
| | __out_ecount_part(*lpcchName, *lpcchName + 1) LPWSTR lpszName, |
| | __inout LPDWORD lpcchName, |
__out PFILETIME lpftLastWriteTime | | __out PFILETIME lpftLastWriteTime |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
ClusterRegSetValue( | | ClusterRegSetValue( |
|
IN HKEY hKey, | | __in HKEY hKey, |
IN LPCWSTR lpszValueName, | | __in LPCWSTR lpszValueName, |
IN DWORD dwType, | | __in DWORD dwType, |
IN CONST BYTE* lpData, | | __in CONST BYTE* lpData, |
IN DWORD cbData | | __in DWORD cbData |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_CLUSTER_REG_SET_VALUE)( |
| | HKEY hKey, |
| | LPCWSTR lpszValueName, |
| | DWORD dwType, |
| | CONST BYTE* lpData, |
| | DWORD cbData |
); | | ); |
| | |
DWORD | | DWORD |
WINAPI | | WINAPI |
ClusterRegDeleteValue( | | ClusterRegDeleteValue( |
|
IN HKEY hKey, | | __in HKEY hKey, |
IN LPCWSTR lpszValueName | | __in LPCWSTR lpszValueName |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_CLUSTER_REG_DELETE_VALUE)( |
| | HKEY hKey, |
| | LPCWSTR lpszValueName |
); | | ); |
| | |
LONG | | LONG |
WINAPI | | WINAPI |
ClusterRegQueryValue( | | ClusterRegQueryValue( |
__in HKEY hKey, | | __in HKEY hKey, |
__in LPCWSTR lpszValueName, | | __in LPCWSTR lpszValueName, |
|
__out LPDWORD lpdwValueType, | | __out_opt LPDWORD lpdwValueType, |
| | __out_bcount_part_opt(*lpcbData, *lpcbData) LPBYTE lpData, |
| | __inout_opt LPDWORD lpcbData |
| | ); |
| | |
| | typedef LONG |
| | (WINAPI * PCLUSAPI_CLUSTER_REG_QUERY_VALUE)( |
| | __in HKEY hKey, |
| | __in LPCWSTR lpszValueName, |
| | __out_opt LPDWORD lpdwValueType, |
__out_bcount_part_opt(*lpcbData, *lpcbData) LPBYTE lpData, | | __out_bcount_part_opt(*lpcbData, *lpcbData) LPBYTE lpData, |
__inout_opt LPDWORD lpcbData | | __inout_opt LPDWORD lpcbData |
); | | ); |
| | |
|
| | __success(return == ERROR_SUCCESS) |
DWORD | | DWORD |
WINAPI | | WINAPI |
ClusterRegEnumValue( | | ClusterRegEnumValue( |
__in HKEY hKey, | | __in HKEY hKey, |
__in DWORD dwIndex, | | __in DWORD dwIndex, |
__out_ecount_part(*lpcchValueName, *lpcchValueName + 1) LPWSTR lpszValueName
, | | __out_ecount_part(*lpcchValueName, *lpcchValueName + 1) LPWSTR lpszValueName
, |
__inout LPDWORD lpcchValueName, | | __inout LPDWORD lpcchValueName, |
|
| | __out_opt LPDWORD lpdwType, |
| | __out_bcount_part_opt(*lpcbData, *lpcbData) LPBYTE lpData, |
| | __inout_opt LPDWORD lpcbData |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_CLUSTER_REG_ENUM_VALUE)( |
| | __in HKEY hKey, |
| | __in DWORD dwIndex, |
| | __out_ecount_part(*lpcchValueName, *lpcchValueName + 1) LPWSTR lpszValueName |
| | , |
| | __inout LPDWORD lpcchValueName, |
__out LPDWORD lpdwType, | | __out LPDWORD lpdwType, |
__out_bcount_part_opt(*lpcbData, *lpcbData) LPBYTE lpData, | | __out_bcount_part_opt(*lpcbData, *lpcbData) LPBYTE lpData, |
__inout_opt LPDWORD lpcbData | | __inout_opt LPDWORD lpcbData |
); | | ); |
| | |
LONG | | LONG |
WINAPI | | WINAPI |
ClusterRegQueryInfoKey( | | ClusterRegQueryInfoKey( |
|
IN HKEY hKey, | | __in HKEY hKey, |
IN LPDWORD lpcSubKeys, | | __in LPDWORD lpcSubKeys, |
IN LPDWORD lpcchMaxSubKeyLen, | | __in LPDWORD lpcchMaxSubKeyLen, |
IN LPDWORD lpcValues, | | __in LPDWORD lpcValues, |
IN LPDWORD lpcchMaxValueNameLen, | | __in LPDWORD lpcchMaxValueNameLen, |
IN LPDWORD lpcbMaxValueLen, | | __in LPDWORD lpcbMaxValueLen, |
IN LPDWORD lpcbSecurityDescriptor, | | __in LPDWORD lpcbSecurityDescriptor, |
IN PFILETIME lpftLastWriteTime | | __in PFILETIME lpftLastWriteTime |
| | ); |
| | |
| | typedef LONG |
| | (WINAPI * PCLUSAPI_CLUSTER_REG_QUERY_INFO_KEY)( |
| | HKEY hKey, |
| | LPDWORD lpcSubKeys, |
| | LPDWORD lpcbMaxSubKeyLen, |
| | LPDWORD lpcValues, |
| | LPDWORD lpcbMaxValueNameLen, |
| | LPDWORD lpcbMaxValueLen, |
| | LPDWORD lpcbSecurityDescriptor, |
| | PFILETIME lpftLastWriteTime |
); | | ); |
| | |
LONG | | LONG |
WINAPI | | WINAPI |
ClusterRegGetKeySecurity ( | | ClusterRegGetKeySecurity ( |
__in HKEY hKey, | | __in HKEY hKey, |
__in SECURITY_INFORMATION RequestedInformation, | | __in SECURITY_INFORMATION RequestedInformation, |
__out_bcount_part(*lpcbSecurityDescriptor, *lpcbSecurityDescriptor) PSECURIT
Y_DESCRIPTOR pSecurityDescriptor, | | __out_bcount_part(*lpcbSecurityDescriptor, *lpcbSecurityDescriptor) PSECURIT
Y_DESCRIPTOR pSecurityDescriptor, |
__inout LPDWORD lpcbSecurityDescriptor | | __inout LPDWORD lpcbSecurityDescriptor |
); | | ); |
| | |
|
| | typedef LONG |
| | (WINAPI * PCLUSAPI_CLUSTER_REG_GET_KEY_SECURITY)( |
| | __in HKEY hKey, |
| | __in SECURITY_INFORMATION RequestedInformation, |
| | __out_bcount_part(*lpcbSecurityDescriptor, *lpcbSecurityDescriptor) PSECURIT |
| | Y_DESCRIPTOR pSecurityDescriptor, |
| | __inout LPDWORD lpcbSecurityDescriptor |
| | ); |
| | |
LONG | | LONG |
WINAPI | | WINAPI |
ClusterRegSetKeySecurity( | | ClusterRegSetKeySecurity( |
|
IN HKEY hKey, | | __in HKEY hKey, |
IN SECURITY_INFORMATION SecurityInformation, | | __in SECURITY_INFORMATION SecurityInformation, |
IN PSECURITY_DESCRIPTOR pSecurityDescriptor | | __in PSECURITY_DESCRIPTOR pSecurityDescriptor |
| | ); |
| | |
| | typedef LONG |
| | (WINAPI * PCLUSAPI_CLUSTER_REG_SET_KEY_SECURITY)( |
| | HKEY hKey, |
| | SECURITY_INFORMATION SecurityInformation, |
| | PSECURITY_DESCRIPTOR pSecurityDescriptor |
| | ); |
| | |
| | LONG WINAPI ClusterRegCreateBatch( |
| | __in_opt HKEY hKey, |
| | __out HREGBATCH* pHREGBATCH |
| | ); |
| | |
| | typedef LONG |
| | (WINAPI *PCLUSAPI_CLUSTER_REG_CREATE_BATCH)( |
| | __in_opt HKEY hKey, |
| | __out HREGBATCH* pHREGBATCH |
| | ); |
| | |
| | LONG WINAPI ClusterRegAddCommand( |
| | __in HREGBATCH HREGBATCH, |
| | __in CLUSTER_REG_COMMAND dwCommand, |
| | __in_opt LPCWSTR wzName, |
| | __in DWORD dwOptions, |
| | __in VOID CONST * lpData, |
| | __in DWORD cbData |
); | | ); |
| | |
|
| | typedef LONG |
| | (WINAPI *PCLUSTER_REG_ADD_COMMAND)( |
| | __in HREGBATCH HREGBATCH, |
| | __in CLUSTER_REG_COMMAND dwCommand, |
| | __in DWORD dwOptions, |
| | __in_opt LPWSTR wzName, |
| | __in VOID CONST * lpData, |
| | __in DWORD cbData |
| | ); |
| | |
| | LONG WINAPI ClusterRegCloseBatch( |
| | __in HREGBATCH HREGBATCH, |
| | __in BOOL bCommit, |
| | __out_opt INT * failedCommandNumber |
| | ); |
| | |
| | typedef LONG |
| | (WINAPI *PCLUSTER_REG_CLOSE_BATCH)( |
| | __in HREGBATCH HREGBATCH, |
| | __in BOOL bCommit, |
| | __out_opt INT * failedCommandNumber |
| | ); |
| | |
| | // |
| | // Cluster Create, Add Node and Destroy Cluster |
| | // |
| | |
| | // |
| | // Phases that changes in cluster persistent membership will go through. |
| | // Phase numbers may arrive in any order via the callback function. |
| | // |
| | |
| | typedef enum _CLUSTER_MEMBERSHIP_CHANGE_PHASE { |
| | |
| | MembershipChangePhaseValidateNodeState = 1, |
| | MembershipChangePhaseNodeInitialize = 3, |
| | MembershipChangePhaseValidateNetft = 4, |
| | MembershipChangePhaseValidateClusDisk = 5, |
| | MembershipChangePhaseConfigureClusSvc = 6, |
| | MembershipChangePhaseStartingClusSvc = 7, |
| | MembershipChangePhaseInitialize = 8, |
| | MembershipChangePhaseWaitForServiceStart = 9, |
| | MembershipChangePhaseNodeUp = 10, |
| | MembershipChangePhaseAddClusterProperties = 11, |
| | MembershipChangePhaseCreateResourceTypes = 12, |
| | MembershipChangePhaseCreateClusterGroup = 13, |
| | MembershipChangePhaseCreateQuorumResource = 14, |
| | MembershipChangePhaseCreateIPAddressResources = 15, |
| | MembershipChangePhaseCreateNetworkName = 16, |
| | MembershipChangePhaseClusterGroupOnline = 17, |
| | MembershipChangePhaseGettingCurrentMembership = 18, |
| | MembershipChangePhaseAddNodeToCluster = 19, |
| | MembershipChangePhaseOfflineGroup = 20, |
| | MembershipChangePhaseEvictNode = 21, |
| | MembershipChangePhaseFailureCleanup = 22 |
| | |
| | } CLUSTER_MEMBERSHIP_CHANGE_PHASE; |
| | |
| | typedef BOOL |
| | (WINAPI *PCLUSTER_MEMBERSHIP_CHANGE_PROGRESS)( |
| | PVOID pvCallbackArg, |
| | CLUSTER_MEMBERSHIP_CHANGE_PHASE eMembershipPhase, |
| | DWORD dwPercentComplete, |
| | __in PCWSTR lpszObjectName, |
| | DWORD dwStatus ); |
| | |
| | HCLUSTER |
| | WINAPI |
| | CreateCluster( |
| | __in PCREATE_CLUSTER_CONFIG pConfig, |
| | __in BOOL fAcceptPartialFailure, |
| | __in_opt PCLUSTER_MEMBERSHIP_CHANGE_PROGRESS pfnProgressCallback, |
| | __in_opt PVOID pvCallbackArg |
| | ); |
| | |
| | typedef HCLUSTER |
| | (WINAPI * PCLUSAPI_CREATE_CLUSTER)( |
| | __in PCREATE_CLUSTER_CONFIG pConfig, |
| | __in BOOL fAcceptPartialFailure, |
| | __in_opt PCLUSTER_MEMBERSHIP_CHANGE_PROGRESS pfnProgressCallback, |
| | __in_opt PVOID pvCallbackArg |
| | ); |
| | |
| | HNODE |
| | WINAPI |
| | AddClusterNode( |
| | __in HCLUSTER hCluster, |
| | __in PCWSTR lpszNodeName, |
| | __in_opt PCLUSTER_MEMBERSHIP_CHANGE_PROGRESS pfnProgressCallback, |
| | __in_opt PVOID pvCallbackArg |
| | ); |
| | |
| | typedef HNODE |
| | (WINAPI * PCLUSAPI_ADD_CLUSTER_NODE)( |
| | __in HCLUSTER hCluster, |
| | __in PCWSTR lpszNodeName, |
| | __in_opt PCLUSTER_MEMBERSHIP_CHANGE_PROGRESS pfnProgressCallback, |
| | __in_opt PVOID pvCallbackArg |
| | ); |
| | |
| | DWORD |
| | WINAPI |
| | DestroyCluster( |
| | __in HCLUSTER hCluster, |
| | __in_opt PCLUSTER_MEMBERSHIP_CHANGE_PROGRESS pfnProgressCallback, |
| | __in_opt PVOID pvCallbackArg |
| | ); |
| | |
| | typedef DWORD |
| | (WINAPI * PCLUSAPI_DESTROY_CLUSTER)( |
| | __in HCLUSTER hCluster, |
| | __in_opt PCLUSTER_MEMBERSHIP_CHANGE_PROGRESS pfnProgressCallback, |
| | __in_opt PVOID pvCallbackArg |
| | ); |
| | |
| | // |
| | // Standard Resource Type Names |
| | // |
| | |
| | #define CLUS_RESTYPE_NAME_GENAPP L"Generic Application" |
| | #define CLUS_RESTYPE_NAME_GENSVC L"Generic Service" |
| | #define CLUS_RESTYPE_NAME_GENSCRIPT L"Generic Script" |
| | #define CLUS_RESTYPE_NAME_IPADDR L"IP Address" |
| | #define CLUS_RESTYPE_NAME_NETNAME L"Network Name" |
| | #define CLUS_RESTYPE_NAME_FILESHR L"File Share" |
| | #define CLUS_RESTYPE_NAME_PRTSPLR L"Print Spooler" |
| | #define CLUS_RESTYPE_NAME_LKQUORUM L"Local Quorum" |
| | #define CLUS_RESTYPE_NAME_IPV6_NATIVE L"IPv6 Address" |
| | #define CLUS_RESTYPE_NAME_IPV6_TUNNEL L"IPv6 Tunnel Address" |
| | |
| | #define CLUS_RESTYPE_NAME_VSSTASK L"Volume Shadow Copy Service Task" |
| | |
| | #define CLUS_RESTYPE_NAME_WINS L"WINS Service" |
| | #define CLUS_RESTYPE_NAME_DHCP L"DHCP Service" |
| | |
| | #define CLUS_RESTYPE_NAME_MSMQ L"Microsoft Message Queue Server" |
| | #define CLUS_RESTYPE_NAME_NEW_MSMQ L"MSMQ" |
| | #define CLUS_RESTYPE_NAME_MSMQ_TRIGGER L"MSMQTriggers" |
| | |
| | #define CLUS_RESTYPE_NAME_MSDTC L"Distributed Transaction Coordinato |
| | r" |
| | |
| | #define CLUS_RESTYPE_NAME_NFS L"NFS Share" |
| | |
| | #define CLUS_RESTYPE_NAME_ISNS L"Microsoft iSNS" |
| | |
| | #define CLUS_RESTYPE_NAME_HARDDISK L"Physical Disk" |
| | #define CLUS_RESTYPE_NAME_PHYS_DISK CLUS_RESTYPE_NAME_HARDDISK |
| | |
| | // |
| | // Cluster common property names |
| | // |
| | #define CLUSREG_NAME_ADMIN_EXT L"AdminExtensions" |
| | #define CLUSREG_NAME_CLUS_DESC L"Description" |
| | #define CLUSREG_NAME_CLUS_SD L"Security Descriptor" |
| | |
| | #define CLUSREG_NAME_CLUS_DEFAULT_NETWORK_ROLE L"DefaultNetworkRole" |
| | #define CLUSREG_NAME_QUORUM_ARBITRATION_TIMEOUT L"QuorumArbitrationTimeMax" |
| | #define CLUSREG_NAME_QUORUM_ARBITRATION_EQUALIZER L"QuorumArbitrationTimeMin" |
| | #define CLUSTER_HEARTBEAT_TIMEOUT_KEYNAME L"ClusSvcHeartbeatTimeout" |
| | #define CLUSTER_HANG_RECOVERY_ACTION_KEYNAME L"HangRecoveryAction" |
| | #define CLUSTER_CSA_VSS_STATE L"BackupInProgress" |
| | |
| | #define CLUSREG_NAME_DISABLE_GROUP_PREFERRED_OWNER_RANDOMIZATION L"DisableGro |
| | upPreferredOwnerRandomization" |
| | |
| | // |
| | // Properties and defaults for single and multi subnet delays and thresholds. |
| | // |
| | #define CLUSREG_NAME_SAME_SUBNET_DELAY L"SameSubnetDelay" |
| | #define CLUSREG_NAME_CROSS_SUBNET_DELAY L"CrossSubnetDelay" |
| | #define CLUSREG_NAME_SAME_SUBNET_THRESHOLD L"SameSubnetThreshold" |
| | #define CLUSREG_NAME_CROSS_SUBNET_THRESHOLD L"CrossSubnetThreshold" |
| | |
| | // |
| | // Node common property names |
| | // |
| | |
| | #define CLUSREG_NAME_NODE_NAME L"NodeName" |
| | #define CLUSREG_NAME_NODE_HIGHEST_VERSION L"NodeHighestVersion" |
| | #define CLUSREG_NAME_NODE_LOWEST_VERSION L"NodeLowestVersion" |
| | #define CLUSREG_NAME_NODE_DESC L"Description" |
| | #define CLUSREG_NAME_NODE_MAJOR_VERSION L"MajorVersion" |
| | #define CLUSREG_NAME_NODE_MINOR_VERSION L"MinorVersion" |
| | #define CLUSREG_NAME_NODE_BUILD_NUMBER L"BuildNumber" |
| | #define CLUSREG_NAME_NODE_CSDVERSION L"CSDVersion" |
| | |
| | // |
| | // Group common property names |
| | // |
| | |
| | #define CLUSREG_NAME_GRP_NAME L"Name" |
| | #define CLUSREG_NAME_GRP_DESC L"Description" |
| | #define CLUSREG_NAME_GRP_PERSISTENT_STATE L"PersistentState" |
| | #define CLUSREG_NAME_GRP_FAILBACK_TYPE L"AutoFailbackType" |
| | #define CLUSREG_NAME_GRP_FAILBACK_WIN_START L"FailbackWindowStart" |
| | #define CLUSREG_NAME_GRP_FAILBACK_WIN_END L"FailbackWindowEnd" |
| | #define CLUSREG_NAME_GRP_FAILOVER_THRESHOLD L"FailoverThreshold" |
| | #define CLUSREG_NAME_GRP_FAILOVER_PERIOD L"FailoverPeriod" |
| | |
| | #define CLUSREG_NAME_GRP_ANTI_AFFINITY_CLASS_NAME L"AntiAffinityClassNames" |
| | |
| | // |
| | // Resource common property names |
| | // |
| | |
| | #define CLUSREG_NAME_RES_NAME L"Name" |
| | #define CLUSREG_NAME_RES_TYPE L"Type" |
| | #define CLUSREG_NAME_RES_DESC L"Description" |
| | #define CLUSREG_NAME_RES_SEPARATE_MONITOR L"SeparateMonitor" |
| | #define CLUSREG_NAME_RES_PERSISTENT_STATE L"PersistentState" |
| | #define CLUSREG_NAME_RES_LOOKS_ALIVE L"LooksAlivePollInterval" |
| | #define CLUSREG_NAME_RES_IS_ALIVE L"IsAlivePollInterval" |
| | #define CLUSREG_NAME_RES_RESTART_ACTION L"RestartAction" |
| | #define CLUSREG_NAME_RES_RESTART_THRESHOLD L"RestartThreshold" |
| | #define CLUSREG_NAME_RES_RESTART_PERIOD L"RestartPeriod" |
| | #define CLUSREG_NAME_RES_RETRY_PERIOD_ON_FAILURE L"RetryPeriodOnFailure" |
| | #define CLUSREG_NAME_RES_PENDING_TIMEOUT L"PendingTimeout" |
| | #define CLUSREG_NAME_RES_DEADLOCK_TIMEOUT L"DeadlockTimeout" |
| | #define CLUSREG_NAME_RES_MONITOR_PID L"MonitorProcessId" |
| | #define CLUSREG_NAME_RES_INTERNAL_STATE L"InternalState" |
| | |
| | // |
| | // Resource Type common property names |
| | // |
| | |
| | #define CLUSREG_NAME_RESTYPE_NAME L"Name" |
| | #define CLUSREG_NAME_RESTYPE_DESC L"Description" |
| | #define CLUSREG_NAME_RESTYPE_DLL_NAME L"DllName" |
| | #define CLUSREG_NAME_RESTYPE_ADMIN_EXTENSIONS L"AdminExtensions" |
| | #define CLUSREG_NAME_RESTYPE_LOOKS_ALIVE CLUSREG_NAME_RES_LOOKS_ALIVE |
| | #define CLUSREG_NAME_RESTYPE_IS_ALIVE CLUSREG_NAME_RES_IS_ALIVE |
| | #define CLUSREG_NAME_RESTYPE_PENDING_TIMEOUT CLUSREG_NAME_RES_PENDING_TIMEOUT |
| | #define CLUSREG_NAME_RESTYPE_DEADLOCK_TIMEOUT CLUSREG_NAME_RES_DEADLOCK_TIMEOU |
| | T |
| | |
| | // |
| | // Network common property names |
| | // |
| | |
| | #define CLUSREG_NAME_NET_NAME L"Name" |
| | #define CLUSREG_NAME_NET_IPV6_ADDRESSES L"IPv6Addresses" |
| | #define CLUSREG_NAME_NET_IPV6_PREFIXLENGTHS L"IPv6PrefixLengths" |
| | #define CLUSREG_NAME_NET_IPV4_ADDRESSES L"IPv4Addresses" |
| | #define CLUSREG_NAME_NET_IPV4_PREFIXLENGTHS L"IPv4PrefixLengths" |
| | #define CLUSREG_NAME_NET_ADDRESS L"Address" |
| | #define CLUSREG_NAME_NET_ADDRESS_MASK L"AddressMask" |
| | #define CLUSREG_NAME_NET_DESC L"Description" |
| | #define CLUSREG_NAME_NET_ROLE L"Role" |
| | |
| | // |
| | // Network Interface common property names |
| | // |
| | |
| | #define CLUSREG_NAME_NETIFACE_NAME L"Name" |
| | #define CLUSREG_NAME_NETIFACE_NODE L"Node" |
| | #define CLUSREG_NAME_NETIFACE_NETWORK L"Network" |
| | #define CLUSREG_NAME_NETIFACE_ADAPTER_NAME L"Adapter" |
| | #define CLUSREG_NAME_NETIFACE_ADAPTER_ID L"AdapterId" |
| | #define CLUSREG_NAME_NETIFACE_DHCP_ENABLED L"DhcpEnabled" |
| | #define CLUSREG_NAME_NETIFACE_IPV6_ADDRESSES L"IPv6Addresses" |
| | #define CLUSREG_NAME_NETIFACE_IPV4_ADDRESSES L"IPv4Addresses" |
| | #define CLUSREG_NAME_NETIFACE_ADDRESS L"Address" |
| | #define CLUSREG_NAME_NETIFACE_DESC L"Description" |
| | |
| | // |
| | // Resource private property names |
| | // |
| | |
| | // |
| | // Physical Disk |
| | // |
| | |
| | #define CLUSREG_NAME_PHYSDISK_DISKIDTYPE L"DiskIdType" |
| | #define CLUSREG_NAME_PHYSDISK_DISKSIGNATURE L"DiskSignature" |
| | #define CLUSREG_NAME_PHYSDISK_DISKIDGUID L"DiskIdGuid" |
| | #define CLUSREG_NAME_PHYSDISK_DISKRUNCHKDSK L"DiskRunChkDsk" |
| | #define CLUSREG_NAME_PHYSDISK_DISKUNIQUEIDS L"DiskUniqueIds" |
| | #define CLUSREG_NAME_PHYSDISK_DISKVOLUMEINFO L"DiskVolumeInfo" |
| | #define CLUSREG_NAME_PHYSDISK_DISKARBTYPE L"DiskArbType" |
| | #define CLUSREG_NAME_PHYSDISK_DISKARBINTERVAL L"DiskArbInterval" |
| | #define CLUSREG_NAME_PHYSDISK_DISKPATH L"DiskPath" |
| | #define CLUSREG_NAME_PHYSDISK_DISKRELOAD L"DiskReload" |
| | #define CLUSREG_NAME_PHYSDISK_MAINTMODE L"MainteanceMode" |
| | #define CLUSREG_NAME_PHYSDISK_DISKIODELAY L"MaxIoLatency" |
| | #define CLUSREG_NAME_PHYSDISK_MIGRATEFIXUP L"MigrateDriveLetters" |
| | |
| | // |
| | // Generic Application |
| | // |
| | |
| | #define CLUSREG_NAME_GENAPP_COMMAND_LINE L"CommandLine" |
| | #define CLUSREG_NAME_GENAPP_CURRENT_DIRECTORY L"CurrentDirectory" |
| | #define CLUSREG_NAME_GENAPP_INTERACT_WITH_DESKTOP L"InteractWithDesktop" |
| | #define CLUSREG_NAME_GENAPP_USE_NETWORK_NAME L"UseNetworkName" |
| | |
| | // |
| | // Generic Script |
| | // |
| | |
| | #define CLUSREG_NAME_GENSCRIPT_SCRIPT_FILEPATH L"ScriptFilepath" |
| | |
| | // |
| | // Generic Service |
| | // |
| | |
| | #define CLUSREG_NAME_GENSVC_SERVICE_NAME L"ServiceName" |
| | #define CLUSREG_NAME_GENSVC_STARTUP_PARAMS L"StartupParameters" |
| | #define CLUSREG_NAME_GENSVC_USE_NETWORK_NAME L"UseNetworkName" |
| | |
| | // |
| | // IPv4 Address |
| | // |
| | |
| | #define CLUSREG_NAME_IPADDR_NETWORK L"Network" |
| | #define CLUSREG_NAME_IPADDR_ADDRESS L"Address" |
| | #define CLUSREG_NAME_IPADDR_SUBNET_MASK L"SubnetMask" |
| | #define CLUSREG_NAME_IPADDR_ENABLE_NETBIOS L"EnableNetBIOS" |
| | #define CLUSREG_NAME_IPADDR_OVERRIDE_ADDRMATCH L"OverrideAddressMatch" |
| | #define CLUSREG_NAME_IPADDR_ENABLE_DHCP L"EnableDhcp" |
| | #define CLUSREG_NAME_IPADDR_LEASE_OBTAINED_TIME L"LeaseObtainedTime" |
| | #define CLUSREG_NAME_IPADDR_LEASE_TERMINATES_TIME L"LeaseExpiresTime" |
| | #define CLUSREG_NAME_IPADDR_T1 L"T1" |
| | #define CLUSREG_NAME_IPADDR_T2 L"T2" |
| | #define CLUSREG_NAME_IPADDR_DHCP_SERVER L"DhcpServer" |
| | #define CLUSREG_NAME_IPADDR_DHCP_ADDRESS L"DhcpAddress" |
| | #define CLUSREG_NAME_IPADDR_DHCP_SUBNET_MASK L"DhcpSubnetMask" |
| | |
| | // |
| | // IPv6 Address |
| | // |
| | |
| | #define CLUSREG_NAME_IPV6_NATIVE_NETWORK L"Network" |
| | #define CLUSREG_NAME_IPV6_NATIVE_ADDRESS L"Address" |
| | #define CLUSREG_NAME_IPV6_NATIVE_PREFIX_LENGTH L"PrefixLength" |
| | |
| | #define CLUSREG_NAME_IPV6_TUNNEL_ADDRESS L"Address" |
| | #define CLUSREG_NAME_IPV6_TUNNEL_TUNNELTYPE L"TunnelType" |
| | |
| | // |
| | // Network Name |
| | // |
| | |
| | #define CLUSREG_NAME_NETNAME_NAME L"Name" |
| | #define CLUSREG_NAME_NETNAME_CREATING_DC L"CreatingDC" |
| | #define CLUSREG_NAME_NETNAME_OBJECT_ID L"ObjectGUID" |
| | #define CLUSREG_NAME_NETNAME_DNS_NAME L"DnsName" |
| | #define CLUSREG_NAME_NETNAME_REMAP_PIPE_NAMES L"RemapPipeNames" |
| | #define CLUSREG_NAME_NETNAME_RESOURCE_DATA L"ResourceData" |
| | #define CLUSREG_NAME_NETNAME_REQUIRE_DNS L"RequireDNS" |
| | #define CLUSREG_NAME_NETNAME_REQUIRE_KERBEROS L"RequireKerberos" |
| | #define CLUSREG_NAME_NETNAME_SCOPED_NAME L"ScopedName" |
| | #define CLUSREG_NAME_NETNAME_STATUS_NETBIOS L"StatusNetBIOS" |
| | #define CLUSREG_NAME_NETNAME_STATUS_DNS L"StatusDNS" |
| | #define CLUSREG_NAME_NETNAME_STATUS_KERBEROS L"StatusKerberos" |
| | #define CLUSREG_NAME_NETNAME_VCO_CONTAINER L"VcoContainer" |
| | #define CLUSREG_NAME_NETNAME_LAST_DNS_UPDATE L"LastDNSUpdateTime" |
| | #define CLUSREG_NAME_NETNAME_CONTAINERGUID L"CryptoContainerGUID" |
| | #define CLUSREG_NAME_NETNAME_HOST_TTL L"HostRecordTTL" |
| | #define CLUSREG_NAME_NETNAME_PUBLISH_PTR L"PublishPTRRecords" |
| | |
| | // |
| | // Print Spooler |
| | // |
| | |
| | #define CLUSREG_NAME_PRTSPOOL_DEFAULT_SPOOL_DIR L"DefaultSpoolDirectory" |
| | #define CLUSREG_NAME_PRTSPOOL_TIMEOUT L"JobCompletionTimeout" |
| | |
| | // |
| | // File Share |
| | // |
| | |
| | #define CLUSREG_NAME_FILESHR_SHARE_NAME L"ShareName" |
| | #define CLUSREG_NAME_FILESHR_PATH L"Path" |
| | #define CLUSREG_NAME_FILESHR_REMARK L"Remark" |
| | #define CLUSREG_NAME_FILESHR_MAX_USERS L"MaxUsers" |
| | #define CLUSREG_NAME_FILESHR_SD L"Security Descriptor" |
| | #define CLUSREG_NAME_FILESHR_SHARE_SUBDIRS L"ShareSubDirs" |
| | #define CLUSREG_NAME_FILESHR_HIDE_SUBDIR_SHARES L"HideSubDirShares" |
| | #define CLUSREG_NAME_FILESHR_IS_DFS_ROOT L"IsDfsRoot" |
| | #define CLUSREG_NAME_FILESHR_SHARE_FLAGS L"ShareFlags" |
| | |
| | // |
| | // DHCP Service |
| | // |
| | |
| | #define CLUSREG_NAME_DHCP_DATABASE_PATH L"DatabasePath" |
| | #define CLUSREG_NAME_DHCP_BACKUP_PATH L"BackupPath" |
| | #define CLUSREG_NAME_LOG_FILE_PATH L"LogFilePath" |
| | |
| | // |
| | // WINS Service |
| | // |
| | |
| | #define CLUSREG_NAME_WINS_DATABASE_PATH L"DatabasePath" |
| | #define CLUSREG_NAME_WINS_BACKUP_PATH L"BackupPath" |
| | |
| | // |
| | // Local Quorum |
| | // |
| | |
| | #define CLUSREG_NAME_LKQUORUM_PATH L"Path" |
| | #define CLUSREG_NAME_LKQUORUM_DEBUG L"Debug" |
| | |
| | // |
| | // Volume Shadow Copy Service Task |
| | // |
| | |
| | #define CLUSREG_NAME_VSSTASK_CURRENTDIRECTORY L"CurrentDirectory" |
| | #define CLUSREG_NAME_VSSTASK_APPNAME L"ApplicationName" |
| | #define CLUSREG_NAME_VSSTASK_APPPARAMS L"ApplicationParams" |
| | #define CLUSREG_NAME_VSSTASK_TRIGGERARRAY L"TriggerArray" |
| | |
#if _MSC_VER >= 1200 | | #if _MSC_VER >= 1200 |
#pragma warning(pop) // restore 4200/4201 | | #pragma warning(pop) // restore 4200/4201 |
#else | | #else |
#pragma warning( default : 4200 ) // nonstandard extension used : zero-sized arr
ay in struct/union | | #pragma warning( default : 4200 ) // nonstandard extension used : zero-sized arr
ay in struct/union |
#pragma warning( default : 4201 ) // nonstandard extension used : nameless struc
t/union | | #pragma warning( default : 4201 ) // nonstandard extension used : nameless struc
t/union |
#endif | | #endif |
#endif // MIDL_PASS | | #endif // MIDL_PASS |
| | |
#ifdef __cplusplus | | #ifdef __cplusplus |
|
} | | } // extern "C" |
#endif | | #endif |
| | |
#ifndef _CLUSTER_API_TYPES_ | | #ifndef _CLUSTER_API_TYPES_ |
#define _CLUSTER_API_TYPES_ | | #define _CLUSTER_API_TYPES_ |
#endif // _CLUSTER_API_TYPES_ | | #endif // _CLUSTER_API_TYPES_ |
| | |
#endif // _CLUSTER_API_ | | #endif // _CLUSTER_API_ |
| | |
End of changes. 203 change blocks. |
229 lines changed or deleted | | 1764 lines changed or added |
|