Win32 API:CLUSPROP_DWORD 结构(Clusapi.h)
CLUSPROP_DWORD 结构是 Windows 集群服务(Cluster Service)中的一部分,用于在集群属性中存储 32 位双字(DWORD)值。它通常在资源或群集配置信息中使用。以下是 CLUSPROP_DWORD 结构的定义:typedef struct { DWORD Syntax; DWORD cbLength; DWORD *pValue;} CLUSPROP_DWORD, *PCLUSPROP_DWORD;这里是各个字段的含义: Syntax: 标识结构的语法类型。对于 CLUSPROP_DWORD,它的值通常为 CLUSTER_PROPERTY_FORMAT_DWORD。 cbLength: 结构体中数据的长度,以字节为单位。对于 CLUSPROP_DWORD,它的值为 sizeof(DWORD)。 pValue: 指向 DWORD 值的指针。在使用这个结构时,您需要分配足够的内存来存储结构体以及 pValue 指向的 DWORD 值。此外,确保在使用完后释放相应的内存以防止内存泄漏。以下是一个示例代码片段,演示如何使用 CLUSPROP_DWORD ...
Win32 API:CLUSPROP_BUFFER_HELPER 结构(Clusapi.h)
CLUSPROP_BUFFER_HELPER 是 Windows API 中 Cluster API 用于处理属性值缓冲区的结构体之一。以下是它的定义:typedef struct CLUSPROP_BUFFER_HELPER { PVOID pb; DWORD cbSize; DWORD cbData; DWORD dwStatus; PVOID pName; DWORD cbName;} CLUSPROP_BUFFER_HELPER, *PCLUSPROP_BUFFER_HELPER;结构体包含以下字段: pb: 一个指针,指向属性值的缓冲区。 cbSize: 表示 pb 缓冲区的总大小(以字节为单位)。 cbData: 表示实际包含的数据的大小(以字节为单位)。 dwStatus: 表示属性值的状态。 pName: 一个指针,指向与属性值相关联的名称。 cbName: 表示名称缓冲区的大小(以字节为单位)。这个结构体用于帮助在 Cluster API 中处理属性值的缓冲区。在处理属性时,特别是在获取或设置属性时,可以使用这个结构体来检查和操作属...
Win32 API:CLUSPROP_BINARY 结构(Clusapi.h)
CLUSPROP_BINARY 是 Windows API 中 Cluster API 用于处理二进制数据的结构体之一。以下是它的定义:typedef struct CLUSPROP_BINARY { DWORD cbLength; BYTE rgb[1];} CLUSPROP_BINARY, *PCLUSPROP_BINARY;结构体包含以下字段: cbLength: 表示 rgb 数组的长度,即二进制数据的字节数。 rgb: 用于存储二进制数据的数组。这种结构体的典型用途是在 Cluster API 中表示一些属性的二进制数据。rgb 数组是一个灵活数组,其长度由 cbLength 字段确定。请注意,因为rgb 是一个灵活数组(flexible array member),它的实际长度是 cbLength 字段的值。这种技术允许在实例化结构体时为 rgb 分配不同的长度。在使用 Cluster API 时,具体的用法和上下文可能会根据要处理的资源类型、属性等而有所不同。详细的信息通常可以在 Microsoft 的官方文档或相应版本的 SDK 头文件中找到。
Win32 API:CLUS_RESOURCE_CLASS_INFO 结构(Clusapi.h)
CLUS_RESOURCE_CLASS_INFO 结构体在 Win32 API 中用于表示群集资源类别的信息。以下是该结构体的定义:typedef struct CLUS_RESOURCE_CLASS_INFO { DWORD dw; DWORD dwType; DWORD dwCharacter; DWORD dwFlags; DWORD dwLookForDependencies; LPWSTR pszName; LPWSTR pszTypeName; LPWSTR pszVendorName; DWORD dwMinimumSupportedMajorVersion; DWORD dwMinimumSupportedMinorVersion; DWORD dwMinimumSupportedBuildNumber; DWORD dwMinimumSupportedServicePack;} CLU...
Win32 API:CLUS_PARTITION_INFO 结构(Clusapi.h)
CLUS_PARTITION_INFO 结构体是 Windows Server 中的 Cluster API 中定义的结构,用于表示群集的分区信息。以下是该结构体的定义:typedef struct CLUS_PARTITION_INFO { DWORD dwFlags; DWORD cbId; CLUS_PARTITION_ID Id; DWORD dwMaxProtocolVersion; DWORD dwMinProtocolVersion; DWORD cbSecurityDescriptor; BYTE *lpSecurityDescriptor;} CLUS_PARTITION_INFO, *PCLUS_PARTITION_INFO;各个字段的含义如下: dwFlags: 一个DWORD值,包含分区信息的标志。可能的标志包括: - CLUSPARTITION_USE_EMBEDDED_OBJECT_ID: 表示使用分区信息中的嵌入式对象标识符(Obj...
Win32 API:CLUS_NETNAME_IP_INFO_ENTRY 结构(Clusapi.h)
CLUS_NETNAME_IP_INFO_ENTRY 是 Windows Server 中的 Cluster Network Name API 中定义的结构体,用于表示群集网络名称资源的 IP 地址信息。以下是该结构体的定义:typedef struct CLUS_NETNAME_IP_INFO_ENTRY { DWORD Version; DWORD AddressType; CLUSTER_IPV6_TOKEN *pvToken; DWORD DottedQuadData; DWORD Skip; DWORD Subnet; DWORD Priority; ULONG TTL; ULONG Lease; ULONG AutoRegTTL; CLUSTER...
Win32 API:SetClusterQuorumResource 函数(Clusapi.h)
SetClusterQuorumResource 函数是 Windows 集群编程中的一个函数,用于指定群集的仲裁资源。在 Windows 集群中,仲裁资源用于维护群集的一致性,并在发生故障时进行决策。以下是该函数的基本信息:DWORD SetClusterQuorumResource( HRESOURCE hResource, BOOL bRestoreQuorum);参数解释如下: hResource: 指定群集资源的句柄,该资源将被指定为仲裁资源。这通常是通过 OpenClusterResource 函数获得的。 bRestoreQuorum: 一个布尔值,指示是否恢复群集的仲裁状态。如果设置为 TRUE,则恢复仲裁状态,如果设置为 FALSE,则不进行恢复。函数返回一个 DWORD 类型的值,表示操作的结果。如果函数成功,返回值为 ERROR_SUCCESS,否则返回相应的错误代码。使用这个函数时,通常的步骤是先通过 OpenCluster 和 OpenClusterResource 函数获取群集和资源的句柄,然后使用 SetClusterQuorumResour...
Win32 API:SetClusterNetworkPriorityOrder 函数(Clusapi.h)
在 Win32 API 中,SetClusterNetworkPriorityOrder 函数用于设置群集网络的优先级顺序。这个函数允许你为一个群集组内的多个网络指定优先级,以决定哪个网络在故障转移时首先使用。以下是该函数的基本信息:DWORD SetClusterNetworkPriorityOrder( HNETWORK hNetwork, DWORD dwType, LPCWSTR lpszNetworkId1, LPCWSTR lpszNetworkId2);参数解释如下: hNetwork: 指定网络的句柄。这是通过 OpenClusterNetwork 函数获得的。 dwType: 指定网络的优先级类型,可以是 CLUSCTL_NETWORK_SET_PRIORITY_ORDER。 lpszNetworkId1 和 lpszNetworkId2: 两个网络的标识符,用于指定它们的优先级顺序。函数返回一个 DWORD 类型的值,表示操作的结果。如果函数成功,返回值为 ERROR_SUCCESS,否则返回相应的错误代码。在调用这个函数之前,你需...
Win32 API:SetClusterNetworkName 函数(Clusapi.h)
SetClusterNetworkName 函数是 Windows 集群编程中的一个函数,用于设置群集网络对象的名称。该函数在 Clusapi.h 头文件中声明,通常用于群集管理和配置。以下是该函数的基本信息:DWORD SetClusterNetworkName( HNETWORK hNetwork, LPCWSTR lpszNetworkName);参数解释如下: hNetwork: 指定网络的句柄。这是通过 OpenClusterNetwork 函数获得的。 lpszNetworkName: 指定要设置的网络名称。这应该是一个以 null 结尾的 Unicode 字符串。函数返回一个 DWORD 类型的值,表示操作的结果。如果函数成功,返回值为 ERROR_SUCCESS,否则返回相应的错误代码。使用这个函数时,通常的步骤是先通过 OpenCluster、OpenClusterGroup 和 OpenClusterNetwork 等函数获取群集、群集组和网络的句柄,然后使用 SetClusterNetworkName 来设置网络的名称。请确保在调用这些函数之前初始化并配置好...
Win32 API:ResumeClusterNode 函数(Clusapi.h)
在 Win32 API 的 Cluster API 中,ResumeClusterNode 函数用于恢复指定的群集节点。通常情况下,该函数的声明位于 Clusapi.h 头文件中。以下是 ResumeClusterNode 函数的一般形式:DWORD ResumeClusterNode( HNODE hNode);参数说明: hNode:指定要恢复的群集节点的句柄。函数返回 DWORD 类型的错误码。如果函数执行成功,返回值为 ERROR_SUCCESS。如果函数执行失败,返回值为相应的错误码,您可以使用 FormatMessage 函数获取详细的错误信息。以下是一个简单的示例,演示如何使用 ResumeClusterNode 函数:#include <windows.h>#include <clusapi.h>int main() { // 打开群集 HCLUSTER hCluster = OpenCluster(NULL); if (hCluster == NULL) { printf("Failed to ope...
Win32 API:RestoreClusterDatabase 函数(Clusapi.h)
在 Win32 API 的 Cluster API 中,RestoreClusterDatabase 函数用于从指定的文件中还原群集数据库。通常情况下,该函数的声明位于 Clusapi.h 头文件中。以下是 RestoreClusterDatabase 函数的一般形式:DWORD RestoreClusterDatabase( LPCWSTR lpszPathName);参数说明: lpszPathName:包含用于还原群集数据库的备份文件的路径的字符串。函数返回 DWORD 类型的错误码。如果函数执行成功,返回值为 ERROR_SUCCESS。如果函数执行失败,返回值为相应的错误码,您可以使用 FormatMessage 函数获取详细的错误信息。以下是一个简单的示例,演示如何使用 RestoreClusterDatabase 函数:#include <windows.h>#include <clusapi.h>int main() { // 指定包含备份文件的路径 LPCWSTR backupFilePath = L"C:\\Path\...
Win32 API:RestartClusterResource 函数(Clusapi.h)
RestartClusterResource 是 Windows 集群编程中的函数,用于重新启动指定的群集资源。该函数的声明通常在 Clusapi.h 头文件中。以下是 RestartClusterResource 函数的一般形式:DWORD RestartClusterResource( HRESOURCE hResource);参数说明: hResource:指定要重新启动的群集资源的句柄。函数返回 DWORD 类型的错误码。如果函数执行成功,返回值为 ERROR_SUCCESS。如果函数执行失败,返回值为相应的错误码,您可以使用 FormatMessage 函数获取详细的错误信息。以下是一个简单的示例,演示如何使用 RestartClusterResource 函数:#include <windows.h>#include <clusapi.h>int main() { // 打开群集 HCLUSTER hCluster = OpenCluster(NULL); if (hCluster == NULL) { printf...
Win32 API:RemoveClusterResourceNode 函数(Clusapi.h)
RemoveClusterResourceNode 是 Windows 集群编程中的函数,用于将群集资源从指定的节点中移除。该函数的声明通常在 Clusapi.h 头文件中。以下是 RemoveClusterResourceNode 函数的一般形式:DWORD RemoveClusterResourceNode( HRESOURCE hResource, HNODE hNode);参数说明: hResource:指定群集资源的句柄,要从中移除节点。 hNode:要移除的节点的句柄。函数返回 DWORD 类型的错误码。如果函数执行成功,返回值为 ERROR_SUCCESS。如果函数执行失败,返回值为相应的错误码,您可以使用 FormatMessage 函数获取详细的错误信息。以下是一个简单的示例,演示如何使用 RemoveClusterResourceNode 函数:#include <windows.h>#include <clusapi.h>int main() { // 打开群集 HCLUSTER hCluster = OpenClu...
Win32 API:RemoveClusterResourceDependency 函数(Clusapi.h)
RemoveClusterResourceDependency 是 Windows 集群编程中的函数,用于从指定群集资源的依赖关系中移除一个或多个依赖项。该函数的声明通常在 Clusapi.h 头文件中。以下是 RemoveClusterResourceDependency 函数的一般形式:DWORD RemoveClusterResourceDependency( HRESOURCE hResource, HRESOURCE hDependentResource);参数说明: hResource:指定群集资源的句柄,从该资源的依赖关系中移除依赖项。 hDependentResource:要移除的依赖群集资源的句柄。函数返回 DWORD 类型的错误码。如果函数执行成功,返回值为 ERROR_SUCCESS。如果函数执行失败,返回值为相应的错误码,您可以使用 FormatMessage 函数获取详细的错误信息。以下是一个简单的示例,演示如何使用 RemoveClusterResourceDependency 函数:#include <windows.h>#include ...
Win32 API:RemoveClusterGroupDependency 函数(Clusapi.h)
RemoveClusterGroupDependency 是 Windows 集群编程中的函数,用于从指定群集组的依赖关系中移除一个或多个依赖项。这个函数的声明通常在 Clusapi.h 头文件中。以下是 RemoveClusterGroupDependency 函数的一般形式:DWORD RemoveClusterGroupDependency( HGROUP hGroup, HGROUP hDependencyGroup);参数说明: hGroup:指定群集组的句柄,从该组的依赖关系中移除依赖项。 hDependencyGroup:要移除的依赖群集组的句柄。函数返回 DWORD 类型的错误码。如果函数执行成功,返回值为 ERROR_SUCCESS。如果函数执行失败,返回值为相应的错误码,您可以使用 FormatMessage 函数获取详细的错误信息。以下是一个简单的示例,演示如何使用 RemoveClusterGroupDependency 函数:#include <windows.h>#include <clusapi.h>int ...
Win32 API:RegisterClusterNotify 函数(Clusapi.h)
RegisterClusterNotify 函数用于在 Windows 集群环境中注册通知回调函数,以便在集群状态发生变化时接收通知。该函数的声明通常在 Clusapi.h 头文件中,用于 Cluster API。以下是 RegisterClusterNotify 函数的一般形式:HCHANGE RegisterClusterNotify( HCHANGE hChange, DWORD dwFilter, DWORD_PTR dwNotifyKey, DWORD dwFilterType, HANDLE hObject);参数说明: hChange:通知对象的句柄。如果传递 NULL,则会创建一个新的通知对象。 dwFilter:指定要接收的通知类型的标志。可以是 CLUSTER_CHANGE_XXX 常量的组合,用于指定感兴趣的事件类型。 dwNotifyKey:传递给回调函数的用户定义键值。 dwFilterType:指定 dw...
Win32 API:OpenClusterResource 函数(Clusapi.h)
OpenClusterResource 函数是 Windows 集群编程中的一个函数,用于打开指定的群集资源对象。该函数的声明在 Clusapi.h 头文件中。以下是 OpenClusterResource 函数的一般形式:HRESOURCE OpenClusterResource( HCLUSTER hCluster, LPCWSTR lpszResourceName);参数说明: hCluster:指向群集的句柄。您可以使用 OpenCluster 函数获取此句柄。 lpszResourceName:要打开的群集资源的名称。函数返回值是一个 HRESOURCE 句柄,代表打开的群集资源。如果函数执行失败,将返回 NULL。您可以使用 GetLastError 函数获取更多信息。以下是一个简单的示例,演示如何使用 OpenClusterResource 函数:#include <windows.h>#include <clusapi.h>int main() { // 打开群集 HCLUSTER hCluster = OpenCluster(...
Win32 API:OpenClusterNode 函数(Clusapi.h)
OpenClusterNode 函数是 Win32 API 中用于打开现有的集群节点的函数,声明通常位于 Clusapi.h 头文件中。以下是该函数的一般声明:HNODE OpenClusterNode( HCLUSTER hCluster, LPCWSTR lpszNodeName);参数说明: hCluster: 集群的句柄,通过 OpenCluster 函数获取。 lpszNodeName: 要打开的集群节点的名称。返回值: 如果函数成功,返回一个指向已打开集群节点的句柄 HNODE;如果函数失败,返回 NULL。你可以使用 GetLastError 函数获取详细的错误信息。以下是一个使用示例:#include <windows.h>#include <clusapi.h>int main() { HCLUSTER hCluster = OpenCluster(NULL); if (hCluster != NULL) { LPCWSTR nodeName = L"YourNodeName"; // 替换为...
Win32 API:OpenClusterNetwork 函数(Clusapi.h)
OpenClusterNetwork 函数是 Win32 API 中用于打开现有的集群网络的函数,声明通常位于 Clusapi.h 头文件中。以下是该函数的一般声明:HNETWORK OpenClusterNetwork( HCLUSTER hCluster, LPCWSTR lpszNetworkName);参数说明: hCluster: 集群的句柄,通过 OpenCluster 函数获取。 lpszNetworkName: 要打开的集群网络的名称。返回值: 如果函数成功,返回一个指向已打开集群网络的句柄 HNETWORK;如果函数失败,返回 NULL。你可以使用 GetLastError 函数获取详细的错误信息。以下是一个使用示例:#include <windows.h>#include <clusapi.h>int main() { HCLUSTER hCluster = OpenCluster(NULL); if (hCluster != NULL) { LPCWSTR networkName = L"YourN...
Win32 API:OpenClusterNetInterface 函数(Clusapi.h)
在 Win32 API 中,OpenClusterNetInterface 函数用于打开现有的集群网络接口,声明通常位于 Clusapi.h 头文件中。以下是该函数的一般声明:HNETINTERFACE OpenClusterNetInterface( HCLUSTER hCluster, LPCWSTR lpszInterfaceName);参数说明: hCluster: 集群的句柄,通过 OpenCluster 函数获取。 lpszInterfaceName: 要打开的集群网络接口的名称。返回值: 如果函数成功,返回一个指向已打开集群网络接口的句柄 HNETINTERFACE;如果函数失败,返回 NULL。你可以使用 GetLastError 函数获取详细的错误信息。以下是一个使用示例:#include <windows.h>#include <clusapi.h>int main() { HCLUSTER hCluster = OpenCluster(NULL); if (hCluster != NULL) { LPCWST...