📄 clusapi.h
字号:
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_GET_LOADBAL_PROCESS_LIST =
CLUSCTL_RESOURCE_CODE( CLCTL_GET_LOADBAL_PROCESS_LIST ),
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 ),
// 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_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 ),
CLUSCTL_RESOURCE_TYPE_VALIDATE_PRIVATE_PROPERTIES =
CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_VALIDATE_PRIVATE_PROPERTIES ),
CLUSCTL_RESOURCE_TYPE_GET_REGISTRY_CHECKPOINTS =
CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_GET_REGISTRY_CHECKPOINTS ),
CLUSCTL_RESOURCE_TYPE_STORAGE_GET_AVAILABLE_DISKS =
CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_STORAGE_GET_AVAILABLE_DISKS ),
// Internal
CLUSCTL_RESOURCE_TYPE_INSTALL_NODE =
CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_INSTALL_NODE ),
CLUSCTL_RESOURCE_TYPE_EVICT_NODE =
CLUSCTL_RESOURCE_TYPE_CODE( CLCTL_EVICT_NODE )
} CLUSCTL_RESOURCE_TYPE_CODES;
//
// Cluster Control Codes for Groups
//
typedef enum CLUSCTL_GROUP_CODES {
// External
CLUSCTL_GROUP_UNKNOWN =
CLUSCTL_GROUP_CODE( CLCTL_UNKNOWN ),
CLUSCTL_GROUP_GET_CHARACTERISTICS =
CLUSCTL_GROUP_CODE( CLCTL_GET_CHARACTERISTICS ),
CLUSCTL_GROUP_GET_FLAGS =
CLUSCTL_GROUP_CODE( CLCTL_GET_FLAGS ),
CLUSCTL_GROUP_GET_NAME =
CLUSCTL_GROUP_CODE( CLCTL_GET_NAME ),
CLUSCTL_GROUP_GET_ID =
CLUSCTL_GROUP_CODE( CLCTL_GET_ID ),
CLUSCTL_GROUP_ENUM_COMMON_PROPERTIES =
CLUSCTL_GROUP_CODE( CLCTL_ENUM_COMMON_PROPERTIES ),
CLUSCTL_GROUP_GET_RO_COMMON_PROPERTIES =
CLUSCTL_GROUP_CODE( CLCTL_GET_RO_COMMON_PROPERTIES ),
CLUSCTL_GROUP_GET_COMMON_PROPERTIES =
CLUSCTL_GROUP_CODE( CLCTL_GET_COMMON_PROPERTIES ),
CLUSCTL_GROUP_SET_COMMON_PROPERTIES =
CLUSCTL_GROUP_CODE( CLCTL_SET_COMMON_PROPERTIES ),
CLUSCTL_GROUP_VALIDATE_COMMON_PROPERTIES =
CLUSCTL_GROUP_CODE( CLCTL_VALIDATE_COMMON_PROPERTIES ),
CLUSCTL_GROUP_ENUM_PRIVATE_PROPERTIES =
CLUSCTL_GROUP_CODE( CLCTL_ENUM_PRIVATE_PROPERTIES ),
CLUSCTL_GROUP_GET_RO_PRIVATE_PROPERTIES =
CLUSCTL_GROUP_CODE( CLCTL_GET_RO_PRIVATE_PROPERTIES ),
CLUSCTL_GROUP_GET_PRIVATE_PROPERTIES =
CLUSCTL_GROUP_CODE( CLCTL_GET_PRIVATE_PROPERTIES ),
CLUSCTL_GROUP_SET_PRIVATE_PROPERTIES =
CLUSCTL_GROUP_CODE( CLCTL_SET_PRIVATE_PROPERTIES ),
CLUSCTL_GROUP_VALIDATE_PRIVATE_PROPERTIES =
CLUSCTL_GROUP_CODE( CLCTL_VALIDATE_PRIVATE_PROPERTIES )
} CLUSCTL_GROUP_CODES;
//
// Cluster Control Codes for Nodes
//
typedef enum CLUSCTL_NODE_CODES {
// External
CLUSCTL_NODE_UNKNOWN =
CLUSCTL_NODE_CODE( CLCTL_UNKNOWN ),
CLUSCTL_NODE_GET_CHARACTERISTICS =
CLUSCTL_NODE_CODE( CLCTL_GET_CHARACTERISTICS ),
CLUSCTL_NODE_GET_FLAGS =
CLUSCTL_NODE_CODE( CLCTL_GET_FLAGS ),
CLUSCTL_NODE_GET_NAME =
CLUSCTL_NODE_CODE( CLCTL_GET_NAME ),
CLUSCTL_NODE_GET_ID =
CLUSCTL_NODE_CODE( CLCTL_GET_ID ),
CLUSCTL_NODE_ENUM_COMMON_PROPERTIES =
CLUSCTL_NODE_CODE( CLCTL_ENUM_COMMON_PROPERTIES ),
CLUSCTL_NODE_GET_RO_COMMON_PROPERTIES =
CLUSCTL_NODE_CODE( CLCTL_GET_RO_COMMON_PROPERTIES ),
CLUSCTL_NODE_GET_COMMON_PROPERTIES =
CLUSCTL_NODE_CODE( CLCTL_GET_COMMON_PROPERTIES ),
CLUSCTL_NODE_SET_COMMON_PROPERTIES =
CLUSCTL_NODE_CODE( CLCTL_SET_COMMON_PROPERTIES ),
CLUSCTL_NODE_VALIDATE_COMMON_PROPERTIES =
CLUSCTL_NODE_CODE( CLCTL_VALIDATE_COMMON_PROPERTIES ),
CLUSCTL_NODE_ENUM_PRIVATE_PROPERTIES =
CLUSCTL_NODE_CODE( CLCTL_ENUM_PRIVATE_PROPERTIES ),
CLUSCTL_NODE_GET_RO_PRIVATE_PROPERTIES =
CLUSCTL_NODE_CODE( CLCTL_GET_RO_PRIVATE_PROPERTIES ),
CLUSCTL_NODE_GET_PRIVATE_PROPERTIES =
CLUSCTL_NODE_CODE( CLCTL_GET_PRIVATE_PROPERTIES ),
CLUSCTL_NODE_SET_PRIVATE_PROPERTIES =
CLUSCTL_NODE_CODE( CLCTL_SET_PRIVATE_PROPERTIES ),
CLUSCTL_NODE_VALIDATE_PRIVATE_PROPERTIES =
CLUSCTL_NODE_CODE( CLCTL_VALIDATE_PRIVATE_PROPERTIES )
} CLUSCTL_NODE_CODES;
//
// Cluster Control Codes for Networks
//
typedef enum CLUSCTL_NETWORK_CODES {
// External
CLUSCTL_NETWORK_UNKNOWN =
CLUSCTL_NETWORK_CODE( CLCTL_UNKNOWN ),
CLUSCTL_NETWORK_GET_CHARACTERISTICS =
CLUSCTL_NETWORK_CODE( CLCTL_GET_CHARACTERISTICS ),
CLUSCTL_NETWORK_GET_FLAGS =
CLUSCTL_NETWORK_CODE( CLCTL_GET_FLAGS ),
CLUSCTL_NETWORK_GET_NAME =
CLUSCTL_NETWORK_CODE( CLCTL_GET_NAME ),
CLUSCTL_NETWORK_GET_ID =
CLUSCTL_NETWORK_CODE( CLCTL_GET_ID ),
CLUSCTL_NETWORK_ENUM_COMMON_PROPERTIES =
CLUSCTL_NETWORK_CODE( CLCTL_ENUM_COMMON_PROPERTIES ),
CLUSCTL_NETWORK_GET_RO_COMMON_PROPERTIES =
CLUSCTL_NETWORK_CODE( CLCTL_GET_RO_COMMON_PROPERTIES ),
CLUSCTL_NETWORK_GET_COMMON_PROPERTIES =
CLUSCTL_NETWORK_CODE( CLCTL_GET_COMMON_PROPERTIES ),
CLUSCTL_NETWORK_SET_COMMON_PROPERTIES =
CLUSCTL_NETWORK_CODE( CLCTL_SET_COMMON_PROPERTIES ),
CLUSCTL_NETWORK_VALIDATE_COMMON_PROPERTIES =
CLUSCTL_NETWORK_CODE( CLCTL_VALIDATE_COMMON_PROPERTIES ),
CLUSCTL_NETWORK_ENUM_PRIVATE_PROPERTIES =
CLUSCTL_NETWORK_CODE( CLCTL_ENUM_PRIVATE_PROPERTIES ),
CLUSCTL_NETWORK_GET_RO_PRIVATE_PROPERTIES =
CLUSCTL_NETWORK_CODE( CLCTL_GET_RO_PRIVATE_PROPERTIES ),
CLUSCTL_NETWORK_GET_PRIVATE_PROPERTIES =
CLUSCTL_NETWORK_CODE( CLCTL_GET_PRIVATE_PROPERTIES ),
CLUSCTL_NETWORK_SET_PRIVATE_PROPERTIES =
CLUSCTL_NETWORK_CODE( CLCTL_SET_PRIVATE_PROPERTIES ),
CLUSCTL_NETWORK_VALIDATE_PRIVATE_PROPERTIES =
CLUSCTL_NETWORK_CODE( CLCTL_VALIDATE_PRIVATE_PROPERTIES )
} CLUSCTL_NETWORK_CODES;
//
// Cluster Control Codes for Network Interfaces
//
typedef enum CLUSCTL_NETINTERFACE_CODES {
// External
CLUSCTL_NETINTERFACE_UNKNOWN =
CLUSCTL_NETINTERFACE_CODE( CLCTL_UNKNOWN ),
CLUSCTL_NETINTERFACE_GET_CHARACTERISTICS =
CLUSCTL_NETINTERFACE_CODE( CLCTL_GET_CHARACTERISTICS ),
CLUSCTL_NETINTERFACE_GET_FLAGS =
CLUSCTL_NETINTERFACE_CODE( CLCTL_GET_FLAGS ),
CLUSCTL_NETINTERFACE_GET_NAME =
CLUSCTL_NETINTERFACE_CODE( CLCTL_GET_NAME ),
CLUSCTL_NETINTERFACE_GET_ID =
CLUSCTL_NETINTERFACE_CODE( CLCTL_GET_ID ),
CLUSCTL_NETINTERFACE_GET_NODE =
CLUSCTL_NETINTERFACE_CODE( CLCTL_GET_NODE ),
CLUSCTL_NETINTERFACE_GET_NETWORK =
CLUSCTL_NETINTERFACE_CODE( CLCTL_GET_NETWORK ),
CLUSCTL_NETINTERFACE_ENUM_COMMON_PROPERTIES =
CLUSCTL_NETINTERFACE_CODE( CLCTL_ENUM_COMMON_PROPERTIES ),
CLUSCTL_NETINTERFACE_GET_RO_COMMON_PROPERTIES =
CLUSCTL_NETINTERFACE_CODE( CLCTL_GET_RO_COMMON_PROPERTIES ),
CLUSCTL_NETINTERFACE_GET_COMMON_PROPERTIES =
CLUSCTL_NETINTERFACE_CODE( CLCTL_GET_COMMON_PROPERTIES ),
CLUSCTL_NETINTERFACE_SET_COMMON_PROPERTIES =
CLUSCTL_NETINTERFACE_CODE( CLCTL_SET_COMMON_PROPERTIES ),
CLUSCTL_NETINTERFACE_VALIDATE_COMMON_PROPERTIES =
CLUSCTL_NETINTERFACE_CODE( CLCTL_VALIDATE_COMMON_PROPERTIES ),
CLUSCTL_NETINTERFACE_ENUM_PRIVATE_PROPERTIES =
CLUSCTL_NETINTERFACE_CODE( CLCTL_ENUM_PRIVATE_PROPERTIES ),
CLUSCTL_NETINTERFACE_GET_RO_PRIVATE_PROPERTIES =
CLUSCTL_NETINTERFACE_CODE( CLCTL_GET_RO_PRIVATE_PROPERTIES ),
CLUSCTL_NETINTERFACE_GET_PRIVATE_PROPERTIES =
CLUSCTL_NETINTERFACE_CODE( CLCTL_GET_PRIVATE_PROPERTIES ),
CLUSCTL_NETINTERFACE_SET_PRIVATE_PROPERTIES =
CLUSCTL_NETINTERFACE_CODE( CLCTL_SET_PRIVATE_PROPERTIES ),
CLUSCTL_NETINTERFACE_VALIDATE_PRIVATE_PROPERTIES =
CLUSCTL_NETINTERFACE_CODE( CLCTL_VALIDATE_PRIVATE_PROPERTIES )
} CLUSCTL_NETINTERFACE_CODES;
//
// Cluster Resource Class types
//
typedef enum CLUSTER_RESOURCE_CLASS {
CLUS_RESCLASS_UNKNOWN = 0,
CLUS_RESCLASS_STORAGE,
CLUS_RESCLASS_USER = 32768
} CLUSTER_RESOURCE_CLASS;
//
// Define Resource SubClass bits
//
typedef enum CLUS_RESSUBCLASS {
CLUS_RESSUBCLASS_SHARED = 0x80000000
} CLUS_RESSUBCLASS;
//
// Cluster Characteristics
//
typedef enum CLUS_CHARACTERISTICS {
CLUS_CHAR_UNKNOWN = 0x00000000,
CLUS_CHAR_QUORUM = 0x00000001,
CLUS_CHAR_DELETE_REQUIRES_ALL_NODES = 0x00000002
} CLUS_CHARACTERISTICS;
//
// Cluster Flags
//
typedef enum CLUS_FLAGS {
CLUS_FLAG_CORE = 0x00000001
} CLUS_FLAGS;
//
// Cluster Resource Property Helper Structures
//
#ifndef MIDL_PASS
// Property syntax. Used for property names and values.
#pragma warning( disable : 4201 ) // nonstandard extension used : nameless struct/union
typedef union CLUSPROP_SYNTAX {
DWORD dw;
struct {
WORD wFormat;
WORD wType;
};
} CLUSPROP_SYNTAX, *PCLUSPROP_SYNTAX;
#pragma warning( default : 4201 )
// Property value.
typedef struct CLUSPROP_VALUE {
CLUSPROP_SYNTAX Syntax;
DWORD cbLength;
} CLUSPROP_VALUE, *PCLUSPROP_VALUE;
// Binary property value.
#pragma warning( disable : 4200 ) // nonstandard extension used : zero-sized array in struct/union
#pragma warning( disable : 4201 ) // nonstandard extension used : nameless struct/union
#ifdef __cplusplus
typedef struct CLUSPROP_BINARY : public CLUSPROP_VALUE {
#else
typedef struct CLUSPROP_BINARY {
CLUSPROP_VALUE;
#endif
BYTE rgb[];
} CLUSPROP_BINARY, *PCLUSPROP_BINARY;
#pragma warning( default : 4200 )
#pragma warning( default : 4201 )
// DWORD property value.
#pragma warning( disable : 4201 ) // nonstandard extension used : nameless struct/union
#ifdef __cplusplus
typedef struct CLUSPROP_DWORD : public CLUSPROP_VALUE {
#else
typedef struct CLUSPROP_DWORD {
CLUSPROP_VALUE;
#endif
DWORD dw;
} CLUSPROP_DWORD, *PCLUSPROP_DWORD;
#pragma warning( default : 4201 )
// String and multiple string property value.
#pragma warning( disable : 4200 ) // nonstandard extension used : zero-sized array in struct/union
#pragma warning( disable : 4201 ) // nonstandard extension used : nameless struct/union
#ifdef __cplusplus
typedef struct CLUSPROP_SZ : public CLUSPROP_VALUE {
#else
typedef struct CLUSPROP_SZ {
CLUSPROP_VALUE;
#endif
WCHAR sz[];
} CLUSPROP_SZ, *PCLUSPROP_SZ;
#pragma warning( default : 4200 )
#pragma warning( default : 4201 )
// Multiple string property value.
typedef CLUSPROP_SZ CLUSPROP_MULTI_SZ, *PCLUSPROP_MULTI_SZ;
// Property name.
typedef CLUSPROP_SZ CLUSPROP_PROPERTY_NAME, *PCLUSPROP_PROPERTY_NAME;
// Large Integer property value.
#pragma warning( disable : 4201 ) // nonstandard extension used : nameless struct/union
#ifdef __cplusplus
typedef struct CLUSPROP_ULARGE_INTEGER
: public CLUSPROP_VALUE {
#else
typedef struct CLUSPROP_ULARGE_INTEGER {
CLUSPROP_VALUE;
#endif
ULARGE_INTEGER li;
} CLUSPROP_LARGE_INTEGER, *PCLUSPROP_ULARGE_INTEGER;
#pragma warning( default : 4201 )
// Resource class info returned by CLCTL_GET_CLASS_INFO control functions.
#pragma warning( disable : 4201 ) // nonstandard extension used : nameless struct/union
typedef struct CLUS_RESOURCE_CLASS_INFO {
union {
struct {
union {
DWORD dw;
CLUSTER_RESOURCE_CLASS rc;
};
DWORD SubClass;
};
ULARGE_INTEGER li;
};
} CLUS_RESOURCE_CLASS_INFO, *PCLUS_RESOURCE_CLASS_INFO;
#pragma warning( default : 4201 )
// Resource class property value.
#pragma warning( disable : 4201 ) // nonstandard extension used : nameless struct/union
#ifdef __cplusplus
typedef struct CLUSPROP_RESOURCE_CLASS
: public CLUSPROP_VALUE {
#else
typedef struct CLUSPROP_RESOURCE_CLASS {
CLUSPROP_VALUE;
#endif
CLUSTER_RESOURCE_CLASS rc;
} CLUSPROP_RESOURCE_CLASS, *PCLUSPROP_RESOURCE_CLASS;
#pragma warning( default : 4201 )
// Resource class info property value.
#pragma warning( disable : 4201 ) // nonstandard extension used : nameless struct/union
#ifdef __cplusplus
typedef struct CLUSPROP_RESOURCE_CLASS_INFO
: public CLUSPROP_VALUE
, public CLUS_RESOURCE_CLASS_INFO {
#else
typedef struct CLUSPROP_RESOURCE_CLASS_INFO {
CLUSPROP_VALUE;
CLUS_RESOURCE_CLASS_INFO;
#endif
} CLUSPROP_RESOURCE_CLASS_INFO, *PCLUSPROP_RESOURCE_CLASS_INFO;
#pragma warning( default : 4201 )
// One entry from list returned by CLCTL_GET_REQUIRED_DEPENDENCIES control functions.
typedef union CLUSPROP_REQUIRED_DEPENDENCY {
CLUSPROP_VALUE Value;
CLUSPROP_RESOURCE_CLASS ResClass;
CLUSPROP_SZ ResTypeName;
} CLUSPROP_REQUIRED_DEPENDENCY, *PCLUSPROP_REQUIRED_DEPENDENCY;
typedef CLUSPROP_DWORD CLUSPROP_DISK_NUMBER, *PCLUSPROP_DISK_NUMBER;
#endif // MIDL_PASS
#endif // _CLUSTER_API_TYPES_
//#ifdef MIDL_PASS
//#ifndef MAX_PATH
//#define MAX_PATH 260
//#endif
//#endif // if MIDL_PASS
#ifndef _CLUSTER_API_TYPES_
// Disk partition information flags.
typedef enum CLUSPROP_PIFLAGS {
CLUSPROP_PIFLAG_STICKY = 0x00000001,
CLUSPROP_PIFLAG_REMOVABLE = 0x00000002,
CLUSPROP_PIFLAG_USABLE = 0x00000004
} CLUSPROP_PIFLAGS;
#ifndef MIDL_PASS
// Disk partition information.
typedef struct CLUS_PARTITION_INFO {
DWORD dwFlags;
WCHAR szDeviceName[MAX_PATH];
WCHAR szVolumeLabel[MAX_PATH];
DWORD dwSerialNumber;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -