启动影响 资源的操作。 执行的操作取决于传递给 dwControlCode 参数的控制代码。
语法
DWORD ClusterResourceControl(
  [in]            HRESOURCE hResource,
  [in, optional]  HNODE     hHostNode,
  [in]            DWORD     dwControlCode,
  [in, optional]  LPVOID    lpInBuffer,
  [in]            DWORD     cbInBufferSize,
  [out, optional] LPVOID    lpOutBuffer,
  [in]            DWORD     cbOutBufferSize,
  [out, optional] LPDWORD   lpBytesReturned
);
参数
[in] hResource
要受影响的资源的句柄。
[in, optional] hHostNode
用于执行操作的节点的可选句柄。 如果 为 NULL,则拥有 由 hResource 标识的资源的节点将执行该操作。
[in] dwControlCode
资源 控制代码,由 CLUSCTL_RESOURCE_CODES 枚举,指定要执行的操作。 有关与控件代码关联的语法,请参阅
              控制代码体系结构 和以下主题:
- CLUSCTL_RESOURCE_UNKNOWN
 - CLUSCTL_RESOURCE_GET_CHARACTERISTICS
 - CLUSCTL_RESOURCE_GET_FLAGS
 - CLUSCTL_RESOURCE_GET_CLASS_INFO
 - CLUSCTL_RESOURCE_GET_REQUIRED_DEPENDENCIES
 - CLUSCTL_RESOURCE_GET_NAME
 - CLUSCTL_RESOURCE_GET_ID
 - CLUSCTL_RESOURCE_GET_RESOURCE_TYPE
 - CLUSCTL_RESOURCE_ENUM_COMMON_PROPERTIES
 - CLUSCTL_RESOURCE_GET_RO_COMMON_PROPERTIES
 - CLUSCTL_RESOURCE_GET_COMMON_PROPERTIES
 - CLUSCTL_RESOURCE_SET_COMMON_PROPERTIES
 - CLUSCTL_RESOURCE_VALIDATE_COMMON_PROPERTIES
 - CLUSCTL_RESOURCE_GET_COMMON_PROPERTY_FMTS
 - CLUSCTL_RESOURCE_ENUM_PRIVATE_PROPERTIES
 - CLUSCTL_RESOURCE_GET_RO_PRIVATE_PROPERTIES
 - CLUSCTL_RESOURCE_GET_PRIVATE_PROPERTIES
 - CLUSCTL_RESOURCE_SET_PRIVATE_PROPERTIES
 - CLUSCTL_RESOURCE_VALIDATE_PRIVATE_PROPERTIES
 - CLUSCTL_RESOURCE_GET_PRIVATE_PROPERTY_FMTS
 - CLUSCTL_RESOURCE_ADD_REGISTRY_CHECKPOINT
 - CLUSCTL_RESOURCE_DELETE_REGISTRY_CHECKPOINT
 - CLUSCTL_RESOURCE_GET_REGISTRY_CHECKPOINTS
 - CLUSCTL_RESOURCE_ADD_CRYPTO_CHECKPOINT
 - CLUSCTL_RESOURCE_DELETE_CRYPTO_CHECKPOINT
 - CLUSCTL_RESOURCE_GET_CRYPTO_CHECKPOINTS
 - CLUSCTL_RESOURCE_GET_LOADBAL_PROCESS_LIST
 - CLUSCTL_RESOURCE_GET_NETWORK_NAME
 - CLUSCTL_RESOURCE_NETNAME_GET_VIRTUAL_SERVER_TOKEN
 - CLUSCTL_RESOURCE_NETNAME_SET_PWD_INFO
 - CLUSCTL_RESOURCE_NETNAME_DELETE_CO
 - CLUSCTL_RESOURCE_NETNAME_VALIDATE_VCO
 - CLUSCTL_RESOURCE_NETNAME_RESET_VCO
 - CLUSCTL_RESOURCE_NETNAME_REGISTER_DNS_RECORDS
 - CLUSCTL_RESOURCE_GET_DNS_NAME
 - CLUSCTL_RESOURCE_STORAGE_GET_DISK_INFO
 - CLUSCTL_RESOURCE_STORAGE_IS_PATH_VALID
 - CLUSCTL_RESOURCE_QUERY_DELETE
 - CLUSCTL_RESOURCE_UPGRADE_DLL
 - CLUSCTL_RESOURCE_IPADDRESS_RENEW_LEASE
 - CLUSCTL_RESOURCE_IPADDRESS_RELEASE_LEASE
 - CLUSCTL_RESOURCE_ADD_REGISTRY_CHECKPOINT_64BIT
 - CLUSCTL_RESOURCE_ADD_REGISTRY_CHECKPOINT_32BIT
 - CLUSCTL_RESOURCE_QUERY_MAINTENANCE_MODE
 - CLUSCTL_RESOURCE_SET_MAINTENANCE_MODE
 - CLUSCTL_RESOURCE_STORAGE_SET_DRIVELETTER
 - CLUSCTL_RESOURCE_STORAGE_GET_DISK_INFO_EX
 - CLUSCTL_RESOURCE_FILESERVER_SHARE_ADD
 - CLUSCTL_RESOURCE_FILESERVER_SHARE_DEL
 - CLUSCTL_RESOURCE_FILESERVER_SHARE_MODIFY
 - CLUSCTL_RESOURCE_FILESERVER_SHARE_REPORT
 - CLUSCTL_RESOURCE_STORAGE_GET_MOUNTPOINTS
 - CLUSCTL_RESOURCE_STORAGE_CLUSTER_DISK
 - CLUSCTL_RESOURCE_STORAGE_GET_DIRTY
 - CLUSCTL_RESOURCE_SET_CSV_MAINTENANCE_MODE
 - CLUSCTL_RESOURCE_ENABLE_SHARED_VOLUME_DIRECTIO
 - CLUSCTL_RESOURCE_DISABLE_SHARED_VOLUME_DIRECTIO
 - CLUSCTL_RESOURCE_SET_SHARED_VOLUME_BACKUP_MODE
 - CLUSCTL_RESOURCE_DELETE
 - CLUSCTL_RESOURCE_INSTALL_NODE
 - CLUSCTL_RESOURCE_EVICT_NODE
 - CLUSCTL_RESOURCE_ADD_DEPENDENCY
 - CLUSCTL_RESOURCE_REMOVE_DEPENDENCY
 - CLUSCTL_RESOURCE_ADD_OWNER
 - CLUSCTL_RESOURCE_REMOVE_OWNER
 - CLUSCTL_RESOURCE_SET_NAME
 - CLUSCTL_RESOURCE_CLUSTER_NAME_CHANGED
 - CLUSCTL_RESOURCE_CLUSTER_VERSION_CHANGED
 - CLUSCTL_RESOURCE_FORCE_QUORUM
 - CLUSCTL_RESOURCE_INITIALIZE
 - CLUSCTL_RESOURCE_STATE_CHANGE_REASON
 - CLUSCTL_RESOURCE_PROVIDER_STATE_CHANGE
 - CLUSCTL_RESOURCE_LEAVING_GROUP
 - CLUSCTL_RESOURCE_JOINING_GROUP
 - CLUSCTL_RESOURCE_FSWITNESS_GET_EPOCH_INFO
 - CLUSCTL_RESOURCE_FSWITNESS_SET_EPOCH_INFO
 - CLUSCTL_RESOURCE_FSWITNESS_RELEASE_LOCK
 - CLUSCTL_RESOURCE_NETNAME_CREDS_UPDATED
 
[in, optional] lpInBuffer
指向包含操作所需信息的输入缓冲区的指针;如果不需要任何信息,则为 NULL 。
[in] cbInBufferSize
输入缓冲区) ,分配的大小 (字节数。
[out, optional] lpOutBuffer
指向用于接收操作生成的数据的输出缓冲区的指针;如果未返回任何数据,则为 NULL 。
[in] cbOutBufferSize
分配的大小 (输出缓冲区) 字节数。
[out, optional] lpBytesReturned
返回操作产生的数据的实际大小 () 字节数。 如果不需要此信息,请为 lpBytesReturned 传递 NULL。
返回值
函数返回以下值之一。
| 返回代码/值 | 说明 | 
|---|---|
  | 
操作成功。 如果操作需要输出缓冲区,则 输入) lpBytesReturned (如果不是 NULL ,则指向缓冲区中返回的数据的实际大小。 | 
  | 
lpOutBuffer 指向的输出缓冲区不够大,无法容纳操作产生的数据。 如果输入) lpBytesReturned 参数 (为 NULL ,则指向输出缓冲区所需的大小。 只有需要输出缓冲区的操作才会返回 ERROR_MORE_DATA。 如果 lpOutBuffer 参数为 NULL 且 cbOutBufferSize 参数为零,则可能会返回 ERROR_SUCCESS ,而不是 ERROR_MORE_DATA。 | 
  | 
仅适用于 CLUSCTL_RESOURCE_SET_COMMON_PROPERTIES 和 CLUSCTL_RESOURCE_SET_PRIVATE_PROPERTIES。 指示属性已成功存储,但尚未应用于资源。 新属性将在资源脱机并重新联机后生效。 | 
  | 
hNode 参数指定的节点不是拥有由 hResource 指定的资源的节点。 | 
| 操作未成功。 如果操作需要输出缓冲区,则 lpBytesReturned 指定的值 (如果输入) 为 NULL ,则不可靠。 | 
注解
当 ClusterResourceControl 返回 ERROR_MORE_DATA时,将 cbOutBufferSize 设置为 lpBytesReturned 指向的字节数,然后再次调用该函数。
不要将 LPC 和 RPC 句柄传递给同一函数调用。 否则,调用将引发 RPC 异常,并可能产生额外的破坏性影响。 有关如何创建 LPC 和 RPC 句柄的信息,请参阅 LPC 和 RPC 句柄 和 OpenCluster。
ClusterResourceControl 函数是控制代码函数之一。 有关控制代码和控制代码函数的详细信息,请参阅 使用控制代码。
要求
| 要求 | 值 | 
|---|---|
| 最低受支持的客户端 | 无受支持的版本 | 
| 最低受支持的服务器 | Windows Server 2008 Enterprise、Windows Server 2008 Datacenter | 
| 目标平台 | Windows | 
| 标头 | clusapi.h | 
| Library | ClusAPI.lib | 
| DLL | ClusAPI.dll |