📄 clusapi.h
字号:
// Cluster control properties
//
#ifndef _CLUSTER_API_TYPES_
//
// Cluster Control Property Data - Types (a WORD)
//
typedef enum CLUSTER_PROPERTY_TYPE {
CLUSPROP_TYPE_UNKNOWN = -1,
CLUSPROP_TYPE_ENDMARK = 0,
CLUSPROP_TYPE_LIST_VALUE,
CLUSPROP_TYPE_RESCLASS,
CLUSPROP_TYPE_RESERVED1,
CLUSPROP_TYPE_NAME,
CLUSPROP_TYPE_SIGNATURE,
CLUSPROP_TYPE_SCSI_ADDRESS,
CLUSPROP_TYPE_DISK_NUMBER,
CLUSPROP_TYPE_PARTITION_INFO,
CLUSPROP_TYPE_FTSET_INFO,
CLUSPROP_TYPE_USER=32768
} CLUSTER_PROPERTY_TYPE;
//
// Cluster Control Property Data - Formats (a WORD)
//
typedef enum CLUSTER_PROPERTY_FORMAT {
CLUSPROP_FORMAT_UNKNOWN = 0,
CLUSPROP_FORMAT_BINARY,
CLUSPROP_FORMAT_DWORD,
CLUSPROP_FORMAT_SZ,
CLUSPROP_FORMAT_EXPAND_SZ,
CLUSPROP_FORMAT_MULTI_SZ,
CLUSPROP_FORMAT_ULARGE_INTEGER,
CLUSPROP_FORMAT_LONG,
CLUSPROP_FORMAT_EXPANDED_SZ,
CLUSPROP_FORMAT_SECURITY_DESCRIPTOR,
CLUSPROP_FORMAT_LARGE_INTEGER,
CLUSPROP_FORMAT_USER=32768
} CLUSTER_PROPERTY_FORMAT;
#endif // _CLUSTER_API_TYPES_
//
// Cluster Control Property Data - Syntax
//
#define CLUSPROP_SYNTAX_VALUE( type, format ) ((DWORD) ((type << 16) | format))
#ifndef _CLUSTER_API_TYPES_
typedef enum CLUSTER_PROPERTY_SYNTAX {
CLUSPROP_SYNTAX_ENDMARK = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_ENDMARK, CLUSPROP_FORMAT_UNKNOWN ),
CLUSPROP_SYNTAX_NAME = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_NAME, CLUSPROP_FORMAT_SZ ),
CLUSPROP_SYNTAX_RESCLASS = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_RESCLASS, CLUSPROP_FORMAT_DWORD ),
CLUSPROP_SYNTAX_LIST_VALUE_SZ = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_LIST_VALUE, CLUSPROP_FORMAT_SZ ),
CLUSPROP_SYNTAX_LIST_VALUE_EXPAND_SZ = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_LIST_VALUE, CLUSPROP_FORMAT_EXPAND_SZ ),
CLUSPROP_SYNTAX_LIST_VALUE_DWORD = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_LIST_VALUE, CLUSPROP_FORMAT_DWORD ),
CLUSPROP_SYNTAX_LIST_VALUE_BINARY = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_LIST_VALUE, CLUSPROP_FORMAT_BINARY ),
CLUSPROP_SYNTAX_LIST_VALUE_MULTI_SZ = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_LIST_VALUE, CLUSPROP_FORMAT_MULTI_SZ ),
CLUSPROP_SYNTAX_LIST_VALUE_LONG = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_LIST_VALUE, CLUSPROP_FORMAT_LONG ),
CLUSPROP_SYNTAX_LIST_VALUE_EXPANDED_SZ = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_LIST_VALUE, CLUSPROP_FORMAT_EXPANDED_SZ ),
CLUSPROP_SYNTAX_LIST_VALUE_SECURITY_DESCRIPTOR = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_LIST_VALUE, CLUSPROP_FORMAT_SECURITY_DESCRIPTOR ),
CLUSPROP_SYNTAX_LIST_VALUE_LARGE_INTEGER = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_LIST_VALUE, CLUSPROP_FORMAT_LARGE_INTEGER ),
// Storage syntax values
CLUSPROP_SYNTAX_DISK_SIGNATURE = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_SIGNATURE, CLUSPROP_FORMAT_DWORD ),
CLUSPROP_SYNTAX_SCSI_ADDRESS = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_SCSI_ADDRESS, CLUSPROP_FORMAT_DWORD ),
CLUSPROP_SYNTAX_DISK_NUMBER = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_DISK_NUMBER, CLUSPROP_FORMAT_DWORD ),
CLUSPROP_SYNTAX_PARTITION_INFO = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_PARTITION_INFO, CLUSPROP_FORMAT_BINARY ),
CLUSPROP_SYNTAX_FTSET_INFO = CLUSPROP_SYNTAX_VALUE( CLUSPROP_TYPE_FTSET_INFO, CLUSPROP_FORMAT_BINARY )
} CLUSTER_PROPERTY_SYNTAX;
#endif // _CLUSTER_API_TYPES_
//
// Define Cluster Control Code access methods
//
#define CLUS_ACCESS_ANY 0
#define CLUS_ACCESS_READ 0x01
#define CLUS_ACCESS_WRITE 0x02
//
// Define Cluster Control Code modification actions
//
#define CLUS_NO_MODIFY 0
#define CLUS_MODIFY 0x01
//
// Define Cluster Control Code Global actions
//
#define CLUS_NOT_GLOBAL 0
#define CLUS_GLOBAL 0x01
#ifndef _CLUSTER_API_TYPES_
//
// Define Cluster Control Code target objects
//
typedef enum CLUSTER_CONTROL_OBJECT {
CLUS_OBJECT_INVALID=0,
CLUS_OBJECT_RESOURCE,
CLUS_OBJECT_RESOURCE_TYPE,
CLUS_OBJECT_GROUP,
CLUS_OBJECT_NODE,
CLUS_OBJECT_NETWORK,
CLUS_OBJECT_NETINTERFACE,
CLUS_OBJECT_CLUSTER,
CLUS_OBJECT_USER=128
} CLUSTER_CONTROL_OBJECT;
#endif // _CLUSTER_API_TYPES_
//
// Macro to generate full cluster control codes
//
// 31 24 23 22 21 20 19 16 15 2 1 0
// +----------+--+--+--+--+-----------+-----------------------+------+
// | OBJECT |G |M |U |I CLUSTER CONTROL CODES |ACCESS|
// +----------+--+--+--+--+-----------+-----------------------+------+
//
// OBJECT - Object identifier (8 bits)
// G - Global bit (operation must be performed on all nodes of cluster)
// M - Modify bit (code causes a modification, may cause event notification)
// U - User code bit (splits the control codes into 2 spaces each 2^^19 in size)
// I - Internal code bit (only for non-user control codes)
// CLUSTER CONTROL CODES - 2^^18 (256 thousand possible control codes)
// ACCESS - Access mode (2 bits)
//
//
// Define control code shifts
//
#define CLUSCTL_ACCESS_SHIFT 0
#define CLUSCTL_FUNCTION_SHIFT 2
#define CLCTL_INTERNAL_SHIFT 20
#define CLCTL_USER_SHIFT 21
#define CLCTL_MODIFY_SHIFT 22
#define CLCTL_GLOBAL_SHIFT 23
#define CLUSCTL_OBJECT_SHIFT 24
//
// Define control code masks
//
#define CLCTL_INTERNAL_MASK (1<<CLCTL_INTERNAL_SHIFT)
#define CLCTL_USER_MASK (1<<CLCTL_USER_SHIFT)
#define CLCTL_MODIFY_MASK (1<<CLCTL_MODIFY_SHIFT)
#define CLCTL_GLOBAL_MASK (1<<CLCTL_GLOBAL_SHIFT)
#define CLUSCTL_CONTROL_CODE_MASK 0x3FFFFF // Includes access mask
#define CLUSCTL_OBJECT_MASK 0xFF
#define CLUSCTL_ACCESS_MODE_MASK 0x03
//
// Cluster Control function codes (a DWORD)
//
#define CLCTL_CLUSTER_BASE 0 // Start of cluster defined functions
#define CLCTL_USER_BASE (1<<CLCTL_USER_SHIFT) // Start of user functions
#define CLCTL_EXTERNAL_CODE( Function, Access, Modify ) ( \
((Access) << CLUSCTL_ACCESS_SHIFT) | \
((CLCTL_CLUSTER_BASE + Function) << CLUSCTL_FUNCTION_SHIFT) | \
((Modify) << CLCTL_MODIFY_SHIFT) )
#define CLCTL_INTERNAL_CODE( Function, Access, Modify ) ( \
((Access) << CLUSCTL_ACCESS_SHIFT) | \
CLCTL_INTERNAL_MASK | \
((CLCTL_CLUSTER_BASE + Function) << CLUSCTL_FUNCTION_SHIFT) | \
((Modify) << CLCTL_MODIFY_SHIFT) )
#ifndef _CLUSTER_API_TYPES_
typedef enum CLCTL_CODES {
//
// External control codes
//
CLCTL_UNKNOWN = CLCTL_EXTERNAL_CODE( 0, CLUS_ACCESS_ANY, CLUS_NO_MODIFY ),
CLCTL_GET_CHARACTERISTICS = CLCTL_EXTERNAL_CODE( 1, CLUS_ACCESS_READ, CLUS_NO_MODIFY ),
CLCTL_GET_FLAGS = CLCTL_EXTERNAL_CODE( 2, CLUS_ACCESS_READ, CLUS_NO_MODIFY ),
CLCTL_GET_CLASS_INFO = CLCTL_EXTERNAL_CODE( 3, CLUS_ACCESS_READ, CLUS_NO_MODIFY ),
CLCTL_GET_REQUIRED_DEPENDENCIES = CLCTL_EXTERNAL_CODE( 4, CLUS_ACCESS_READ, CLUS_NO_MODIFY ),
CLCTL_GET_NAME = CLCTL_EXTERNAL_CODE( 10, CLUS_ACCESS_READ, CLUS_NO_MODIFY ),
CLCTL_GET_RESOURCE_TYPE = CLCTL_EXTERNAL_CODE( 11, CLUS_ACCESS_READ, CLUS_NO_MODIFY ),
CLCTL_GET_NODE = CLCTL_EXTERNAL_CODE( 12, CLUS_ACCESS_READ, CLUS_NO_MODIFY ),
CLCTL_GET_NETWORK = CLCTL_EXTERNAL_CODE( 13, CLUS_ACCESS_READ, CLUS_NO_MODIFY ),
CLCTL_GET_ID = CLCTL_EXTERNAL_CODE( 14, CLUS_ACCESS_READ, CLUS_NO_MODIFY ),
CLCTL_ENUM_COMMON_PROPERTIES = CLCTL_EXTERNAL_CODE( 20, CLUS_ACCESS_READ, CLUS_NO_MODIFY ),
CLCTL_GET_RO_COMMON_PROPERTIES = CLCTL_EXTERNAL_CODE( 21, CLUS_ACCESS_READ, CLUS_NO_MODIFY ),
CLCTL_GET_COMMON_PROPERTIES = CLCTL_EXTERNAL_CODE( 22, CLUS_ACCESS_READ, CLUS_NO_MODIFY ),
CLCTL_SET_COMMON_PROPERTIES = CLCTL_EXTERNAL_CODE( 23, CLUS_ACCESS_WRITE, CLUS_MODIFY ),
CLCTL_VALIDATE_COMMON_PROPERTIES = CLCTL_EXTERNAL_CODE( 24, CLUS_ACCESS_READ, CLUS_NO_MODIFY ),
CLCTL_ENUM_PRIVATE_PROPERTIES = CLCTL_EXTERNAL_CODE( 30, CLUS_ACCESS_READ, CLUS_NO_MODIFY ),
CLCTL_GET_RO_PRIVATE_PROPERTIES = CLCTL_EXTERNAL_CODE( 31, CLUS_ACCESS_READ, CLUS_NO_MODIFY ),
CLCTL_GET_PRIVATE_PROPERTIES = CLCTL_EXTERNAL_CODE( 32, CLUS_ACCESS_READ, CLUS_NO_MODIFY ),
CLCTL_SET_PRIVATE_PROPERTIES = CLCTL_EXTERNAL_CODE( 33, CLUS_ACCESS_WRITE, CLUS_MODIFY ),
CLCTL_VALIDATE_PRIVATE_PROPERTIES = CLCTL_EXTERNAL_CODE( 34, CLUS_ACCESS_READ, CLUS_NO_MODIFY ),
CLCTL_ADD_REGISTRY_CHECKPOINT = CLCTL_EXTERNAL_CODE( 40, CLUS_ACCESS_WRITE, CLUS_MODIFY ),
CLCTL_DELETE_REGISTRY_CHECKPOINT = CLCTL_EXTERNAL_CODE( 41, CLUS_ACCESS_WRITE, CLUS_MODIFY ),
CLCTL_GET_REGISTRY_CHECKPOINTS = CLCTL_EXTERNAL_CODE( 42, CLUS_ACCESS_READ, CLUS_NO_MODIFY ),
CLCTL_ADD_CRYPTO_CHECKPOINT = CLCTL_EXTERNAL_CODE( 43, CLUS_ACCESS_WRITE, CLUS_MODIFY ),
CLCTL_DELETE_CRYPTO_CHECKPOINT = CLCTL_EXTERNAL_CODE( 44, CLUS_ACCESS_WRITE, CLUS_MODIFY ),
CLCTL_GET_CRYPTO_CHECKPOINTS = CLCTL_EXTERNAL_CODE( 45, CLUS_ACCESS_READ, CLUS_NO_MODIFY ),
CLCTL_GET_LOADBAL_PROCESS_LIST = CLCTL_EXTERNAL_CODE( 50, CLUS_ACCESS_READ, CLUS_NO_MODIFY ),
CLCTL_GET_NETWORK_NAME = CLCTL_EXTERNAL_CODE( 90, CLUS_ACCESS_READ, CLUS_NO_MODIFY ),
CLCTL_STORAGE_GET_DISK_INFO = CLCTL_EXTERNAL_CODE( 100, CLUS_ACCESS_READ, CLUS_NO_MODIFY ),
CLCTL_STORAGE_GET_AVAILABLE_DISKS = CLCTL_EXTERNAL_CODE( 101, CLUS_ACCESS_READ, CLUS_NO_MODIFY ),
CLCTL_STORAGE_IS_PATH_VALID = CLCTL_EXTERNAL_CODE( 102, CLUS_ACCESS_READ, CLUS_NO_MODIFY ),
CLCTL_STORAGE_GET_ALL_AVAILABLE_DISKS = (CLCTL_EXTERNAL_CODE( 103, CLUS_ACCESS_READ, CLUS_NO_MODIFY ) | CLCTL_GLOBAL_MASK),
CLCTL_QUERY_DELETE = CLCTL_EXTERNAL_CODE( 110, CLUS_ACCESS_READ, CLUS_NO_MODIFY ),
//
// Internal control codes
//
CLCTL_DELETE = CLCTL_INTERNAL_CODE( 1, CLUS_ACCESS_WRITE, CLUS_MODIFY ),
CLCTL_INSTALL_NODE = CLCTL_INTERNAL_CODE( 2, CLUS_ACCESS_WRITE, CLUS_MODIFY ),
CLCTL_EVICT_NODE = CLCTL_INTERNAL_CODE( 3, CLUS_ACCESS_WRITE, CLUS_MODIFY ),
CLCTL_ADD_DEPENDENCY = CLCTL_INTERNAL_CODE( 4, CLUS_ACCESS_WRITE, CLUS_MODIFY ),
CLCTL_REMOVE_DEPENDENCY = CLCTL_INTERNAL_CODE( 5, CLUS_ACCESS_WRITE, CLUS_MODIFY ),
CLCTL_ADD_OWNER = CLCTL_INTERNAL_CODE( 6, CLUS_ACCESS_WRITE, CLUS_MODIFY ),
CLCTL_REMOVE_OWNER = CLCTL_INTERNAL_CODE( 7, CLUS_ACCESS_WRITE, CLUS_MODIFY ),
//************ Hole here at 8
CLCTL_SET_NAME = CLCTL_INTERNAL_CODE( 9, CLUS_ACCESS_WRITE, CLUS_MODIFY ),
CLCTL_CLUSTER_NAME_CHANGED = CLCTL_INTERNAL_CODE( 10, CLUS_ACCESS_WRITE, CLUS_MODIFY ),
CLCTL_CLUSTER_VERSION_CHANGED = CLCTL_INTERNAL_CODE( 11, CLUS_ACCESS_WRITE, CLUS_MODIFY ),
CLCTL_FIXUP_ON_UPGRADE = CLCTL_INTERNAL_CODE( 12, CLUS_ACCESS_WRITE, CLUS_MODIFY ),
CLCTL_STARTING_PHASE1 = CLCTL_INTERNAL_CODE( 13, CLUS_ACCESS_WRITE, CLUS_MODIFY ),
CLCTL_STARTING_PHASE2 = CLCTL_INTERNAL_CODE( 14, CLUS_ACCESS_WRITE, CLUS_MODIFY ),
CLCTL_HOLD_IO = CLCTL_INTERNAL_CODE( 15, CLUS_ACCESS_WRITE, CLUS_MODIFY ),
CLCTL_RESUME_IO = CLCTL_INTERNAL_CODE( 16, CLUS_ACCESS_WRITE, CLUS_MODIFY )
} CLCTL_CODES;
#endif // _CLUSTER_API_TYPES_
//
// Define macros to generate object specific control codes
//
#define CLUSCTL_RESOURCE_CODE( Function ) ( \
((CLUS_OBJECT_RESOURCE << CLUSCTL_OBJECT_SHIFT) | Function) )
#define CLUSCTL_RESOURCE_TYPE_CODE( Function ) ( \
((CLUS_OBJECT_RESOURCE_TYPE << CLUSCTL_OBJECT_SHIFT) | Function) )
#define CLUSCTL_GROUP_CODE( Function ) ( \
((CLUS_OBJECT_GROUP << CLUSCTL_OBJECT_SHIFT) | Function) )
#define CLUSCTL_NODE_CODE( Function ) ( \
((CLUS_OBJECT_NODE << CLUSCTL_OBJECT_SHIFT) | Function) )
#define CLUSCTL_NETWORK_CODE( Function ) ( \
((CLUS_OBJECT_NETWORK << CLUSCTL_OBJECT_SHIFT) | Function) )
#define CLUSCTL_NETINTERFACE_CODE( Function ) ( \
((CLUS_OBJECT_NETINTERFACE << CLUSCTL_OBJECT_SHIFT) | Function) )
#define CLUSCTL_CLUSTER_CODE( Function ) ( \
((CLUS_OBJECT_CLUSTER << CLUSCTL_OBJECT_SHIFT) | Function) )
#define CLUSCTL_USER_CODE( Function, Object ) ( \
((Object) << CLUSCTL_OBJECT_SHIFT) | (CLCTL_USER_BASE + Function) )
//
// Define macros to get the function or access mode out of a control code
//
#define CLUSCTL_GET_CONTROL_FUNCTION( ControlCode ) \
((ControlCode >> CLUSCTL_ACCESS_SHIFT) & CLUSCTL_CONTROL_CODE_MASK)
#define CLUSCTL_GET_ACCESS_MODE( ControlCode ) \
((ControlCode >> CLUSCTL_ACCESS_SHIFT) & CLUSCTL_ACCESS_MODE_MASK)
#define CLUSCTL_GET_CONTROL_OBJECT( ControlCode ) \
((ControlCode >> CLUSCTL_OBJECT_SHIFT) & CLUSCTL_OBJECT_MASK)
#ifndef _CLUSTER_API_TYPES_
//
// Cluster Control Codes for Resources
//
typedef enum CLUSCTL_RESOURCE_CODES {
// External
CLUSCTL_RESOURCE_UNKNOWN =
CLUSCTL_RESOURCE_CODE( CLCTL_UNKNOWN ),
CLUSCTL_RESOURCE_GET_CHARACTERISTICS =
CLUSCTL_RESOURCE_CODE( CLCTL_GET_CHARACTERISTICS ),
CLUSCTL_RESOURCE_GET_FLAGS =
CLUSCTL_RESOURCE_CODE( CLCTL_GET_FLAGS ),
CLUSCTL_RESOURCE_GET_CLASS_INFO =
CLUSCTL_RESOURCE_CODE( CLCTL_GET_CLASS_INFO ),
CLUSCTL_RESOURCE_GET_REQUIRED_DEPENDENCIES =
CLUSCTL_RESOURCE_CODE( CLCTL_GET_REQUIRED_DEPENDENCIES ),
CLUSCTL_RESOURCE_GET_NAME =
CLUSCTL_RESOURCE_CODE( CLCTL_GET_NAME ),
CLUSCTL_RESOURCE_GET_ID =
CLUSCTL_RESOURCE_CODE( CLCTL_GET_ID ),
CLUSCTL_RESOURCE_GET_RESOURCE_TYPE =
CLUSCTL_RESOURCE_CODE( CLCTL_GET_RESOURCE_TYPE ),
CLUSCTL_RESOURCE_ENUM_COMMON_PROPERTIES =
CLUSCTL_RESOURCE_CODE( CLCTL_ENUM_COMMON_PROPERTIES ),
CLUSCTL_RESOURCE_GET_RO_COMMON_PROPERTIES =
CLUSCTL_RESOURCE_CODE( CLCTL_GET_RO_COMMON_PROPERTIES ),
CLUSCTL_RESOURCE_GET_COMMON_PROPERTIES =
CLUSCTL_RESOURCE_CODE( CLCTL_GET_COMMON_PROPERTIES ),
CLUSCTL_RESOURCE_SET_COMMON_PROPERTIES =
CLUSCTL_RESOURCE_CODE( CLCTL_SET_COMMON_PROPERTIES ),
CLUSCTL_RESOURCE_VALIDATE_COMMON_PROPERTIES =
CLUSCTL_RESOURCE_CODE( CLCTL_VALIDATE_COMMON_PROPERTIES ),
CLUSCTL_RESOURCE_ENUM_PRIVATE_PROPERTIES =
CLUSCTL_RESOURCE_CODE( CLCTL_ENUM_PRIVATE_PROPERTIES ),
CLUSCTL_RESOURCE_GET_RO_PRIVATE_PROPERTIES =
CLUSCTL_RESOURCE_CODE( CLCTL_GET_RO_PRIVATE_PROPERTIES ),
CLUSCTL_RESOURCE_GET_PRIVATE_PROPERTIES =
CLUSCTL_RESOURCE_CODE( CLCTL_GET_PRIVATE_PROPERTIES ),
CLUSCTL_RESOURCE_SET_PRIVATE_PROPERTIES =
CLUSCTL_RESOURCE_CODE( CLCTL_SET_PRIVATE_PROPERTIES ),
CLUSCTL_RESOURCE_VALIDATE_PRIVATE_PROPERTIES =
CLUSCTL_RESOURCE_CODE( CLCTL_VALIDATE_PRIVATE_PROPERTIES ),
CLUSCTL_RESOURCE_ADD_REGISTRY_CHECKPOINT =
CLUSCTL_RESOURCE_CODE( CLCTL_ADD_REGISTRY_CHECKPOINT ),
CLUSCTL_RESOURCE_DELETE_REGISTRY_CHECKPOINT =
CLUSCTL_RESOURCE_CODE( CLCTL_DELETE_REGISTRY_CHECKPOINT ),
CLUSCTL_RESOURCE_GET_REGISTRY_CHECKPOINTS =
CLUSCTL_RESOURCE_CODE( CLCTL_GET_REGISTRY_CHECKPOINTS ),
CLUSCTL_RESOURCE_ADD_CRYPTO_CHECKPOINT =
CLUSCTL_RESOURCE_CODE( CLCTL_ADD_CRYPTO_CHECKPOINT ),
CLUSCTL_RESOURCE_DELETE_CRYPTO_CHECKPOINT =
CLUSCTL_RESOURCE_CODE( CLCTL_DELETE_CRYPTO_CHECKPOINT ),
CLUSCTL_RESOURCE_GET_CRYPTO_CHECKPOINTS =
CLUSCTL_RESOURCE_CODE( CLCTL_GET_CRYPTO_CHECKPOINTS ),
CLUSCTL_RESOURCE_GET_LOADBAL_PROCESS_LIST =
CLUSCTL_RESOURCE_CODE( CLCTL_GET_LOADBAL_PROCESS_LIST ),
CLUSCTL_RESOURCE_GET_NETWORK_NAME =
CLUSCTL_RESOURCE_CODE( CLCTL_GET_NETWORK_NAME ),
CLUSCTL_RESOURCE_STORAGE_GET_DISK_INFO =
CLUSCTL_RESOURCE_CODE( CLCTL_STORAGE_GET_DISK_INFO ),
CLUSCTL_RESOURCE_STORAGE_IS_PATH_VALID =
CLUSCTL_RESOURCE_CODE( CLCTL_STORAGE_IS_PATH_VALID ),
CLUSCTL_RESOURCE_QUERY_DELETE =
CLUSCTL_RESOURCE_CODE( CLCTL_QUERY_DELETE ),
// Internal
CLUSCTL_RESOURCE_DELETE =
CLUSCTL_RESOURCE_CODE( CLCTL_DELETE ),
CLUSCTL_RESOURCE_INSTALL_NODE =
CLUSCTL_RESOURCE_CODE( CLCTL_INSTALL_NODE ),
CLUSCTL_RESOURCE_EVICT_NODE =
CLUSCTL_RESOURCE_CODE( CLCTL_EVICT_NODE ),
CLUSCTL_RESOURCE_ADD_DEPENDENCY =
CLUSCTL_RESOURCE_CODE( CLCTL_ADD_DEPENDENCY ),
CLUSCTL_RESOURCE_REMOVE_DEPENDENCY =
CLUSCTL_RESOURCE_CODE( CLCTL_REMOVE_DEPENDENCY ),
CLUSCTL_RESOURCE_ADD_OWNER =
CLUSCTL_RESOURCE_CODE( CLCTL_ADD_OWNER ),
CLUSCTL_RESOURCE_REMOVE_OWNER =
CLUSCTL_RESOURCE_CODE( CLCTL_REMOVE_OWNER ),
CLUSCTL_RESOURCE_SET_NAME =
CLUSCTL_RESOURCE_CODE( CLCTL_SET_NAME ),
CLUSCTL_RESOURCE_CLUSTER_NAME_CHANGED =
CLUSCTL_RESOURCE_CODE( CLCTL_CLUSTER_NAME_CHANGED ),
CLUSCTL_RESOURCE_CLUSTER_VERSION_CHANGED =
CLUSCTL_RESOURCE_CODE( CLCTL_CLUSTER_VERSION_CHANGED )
} CLUSCTL_RESOURCE_CODES;
//
// Cluster Control Codes for Resource Types
//
typedef enum CLUSCTL_RESOURCE_TYPE_CODES {
// External
CLUSCTL_RESOURCE_TYPE_UNKNOWN =
CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_UNKNOWN ),
CLUSCTL_RESOURCE_TYPE_GET_CHARACTERISTICS =
CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_GET_CHARACTERISTICS ),
CLUSCTL_RESOURCE_TYPE_GET_FLAGS =
CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_GET_FLAGS ),
CLUSCTL_RESOURCE_TYPE_GET_CLASS_INFO =
CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_GET_CLASS_INFO ),
CLUSCTL_RESOURCE_TYPE_GET_REQUIRED_DEPENDENCIES =
CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_GET_REQUIRED_DEPENDENCIES ),
CLUSCTL_RESOURCE_TYPE_ENUM_COMMON_PROPERTIES =
CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_ENUM_COMMON_PROPERTIES ),
CLUSCTL_RESOURCE_TYPE_GET_RO_COMMON_PROPERTIES =
CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_GET_RO_COMMON_PROPERTIES ),
CLUSCTL_RESOURCE_TYPE_GET_COMMON_PROPERTIES =
CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_GET_COMMON_PROPERTIES ),
CLUSCTL_RESOURCE_TYPE_VALIDATE_COMMON_PROPERTIES =
CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_VALIDATE_COMMON_PROPERTIES ),
CLUSCTL_RESOURCE_TYPE_SET_COMMON_PROPERTIES =
CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_SET_COMMON_PROPERTIES ),
CLUSCTL_RESOURCE_TYPE_ENUM_PRIVATE_PROPERTIES =
CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_ENUM_PRIVATE_PROPERTIES ),
CLUSCTL_RESOURCE_TYPE_GET_RO_PRIVATE_PROPERTIES =
CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_GET_RO_PRIVATE_PROPERTIES ),
CLUSCTL_RESOURCE_TYPE_GET_PRIVATE_PROPERTIES =
CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_GET_PRIVATE_PROPERTIES ),
CLUSCTL_RESOURCE_TYPE_SET_PRIVATE_PROPERTIES =
CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_SET_PRIVATE_PROPERTIES ),
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -