将事件类型添加到为通知端口存储的事件列表。 PCLUSAPI_REGISTER_CLUSTER_NOTIFY类型定义指向此函数的指针。
语法
DWORD RegisterClusterNotify(
[in] HCHANGE hChange,
[in] DWORD dwFilterType,
[in] HANDLE hObject,
[in] DWORD_PTR dwNotifyKey
);
参数
[in] hChange
使用 CreateClusterNotifyPort 函数创建的通知端口的句柄。
[in] dwFilterType
描述要添加到通知端口当前监视的事件集的事件的标志的位掩码。 有关这些事件类型的详细信息,请参阅 CreateClusterNotifyPort。 dwFilterType 参数可以设置为以下标志之一。
CLUSTER_CHANGE_CLUSTER_PROPERTY (0x40000000)
当群集的内部 网络 优先级列表发生更改时,队列会收到通知。
CLUSTER_CHANGE_CLUSTER_RECONNECT
在短暂断开连接后,与 hCluster 标识的群集的连接重新建立时,队列会收到通知。 在此事件之前或之后立即生成的某些事件可能已丢失。 需要关闭所有打开的连接并重新连接才能接收准确的状态信息。
CLUSTER_CHANGE_CLUSTER_STATE (0x20000000)
当群集不可用时,队列会收到通知,这意味着与群集通信的所有尝试都失败。 此通知保留供将来使用。
CLUSTER_CHANGE_GROUP_ADDED (0x00004000)
在群集中创建新 组 时,队列会收到通知。
CLUSTER_CHANGE_GROUP_DELETED (0x00002000)
删除现有 组 时,队列会收到通知。
CLUSTER_CHANGE_GROUP_PROPERTY (0x00008000)
当现有组 的属性 发生更改时,队列会收到通知。
CLUSTER_CHANGE_GROUP_STATE (0x00001000)
当组更改状态时,队列会收到通知。
CLUSTER_CHANGE_HANDLE_CLOSE (0x80000000)
当 群集对象的 句柄关闭时,队列会收到通知。
CLUSTER_CHANGE_NETINTERFACE_ADDED (0x04000000)
CLUSTER_CHANGE_NETINTERFACE_DELETED (0x02000000)
当网络接口从群集节点永久删除时,队列会收到通知。
CLUSTER_CHANGE_NETINTERFACE_PROPERTY (0x08000000)
当现有网络接口 的属性 发生更改时,队列会收到通知。
CLUSTER_CHANGE_NETINTERFACE_STATE (0x01000000)
当网络接口更改状态时,队列会收到通知。 有关可能的网络接口状态值的列表,请参阅 GetClusterNetInterfaceState。
CLUSTER_CHANGE_NETWORK_ADDED (0x00400000)
将新 网络 添加到群集环境时,队列会收到通知。
CLUSTER_CHANGE_NETWORK_DELETED (0x00200000)
当网络从群集环境中永久删除时,队列会收到通知。
CLUSTER_CHANGE_NETWORK_PROPERTY (0x00800000)
当现有网络 的属性 发生更改时,队列会收到通知。
CLUSTER_CHANGE_NETWORK_STATE (0x00100000)
当网络更改状态时,队列会收到通知。 有关可能的网络状态值的列表,请参阅 GetClusterNetworkState。
CLUSTER_CHANGE_NODE_ADDED (0x00000004)
将新 节点 添加到群集时,队列会收到通知。 仅当群集服务最初安装在节点上时,才能添加节点。
CLUSTER_CHANGE_NODE_DELETED (0x00000002)
当 节点 从群集中永久删除时,队列会收到通知。 可以通过调用 EvictClusterNode 函数从现有群集中永久删除节点。
CLUSTER_CHANGE_NODE_PROPERTY (0x00000008)
此通知保留供将来使用。
CLUSTER_CHANGE_NODE_STATE (0x00000001)
当节点更改状态时,队列会收到通知。
CLUSTER_CHANGE_QUORUM_STATE (0x10000000)
仲裁 资源 更改状态时,队列会收到通知。
CLUSTER_CHANGE_REGISTRY_ATTRIBUTES (0x00000020)
群集数据库密钥的属性发生更改时,队列会收到通知。
CLUSTER_CHANGE_REGISTRY_NAME (0x00000010)
在群集数据库中更改名称时,队列会收到通知。
CLUSTER_CHANGE_REGISTRY_SUBTREE (0x00000080)
指示其他CLUSTER_CHANGE_REGISTRY事件应用于群集数据库的根目录和所有子项。 如果未指定CLUSTER_CHANGE_REGISTRY_SUBTREE,则通知仅适用于根。
CLUSTER_CHANGE_REGISTRY_VALUE (0x00000040)
当指定群集数据库密钥的值发生更改或删除时,队列会收到通知。
CLUSTER_CHANGE_RESOURCE_ADDED (0x00000400)
在群集中创建新 资源 时,队列会收到通知。
CLUSTER_CHANGE_RESOURCE_DELETED (0x00000200)
删除 资源 时,队列会收到通知。
CLUSTER_CHANGE_RESOURCE_PROPERTY (0x00000800)
指示在资源 的属性 更改时应发出通知。
CLUSTER_CHANGE_RESOURCE_STATE (0x00000100)
当资源更改状态时,队列会收到通知。
CLUSTER_CHANGE_RESOURCE_TYPE_ADDED (0x00020000)
在群集中创建新 资源类型 时,队列会收到通知。
CLUSTER_CHANGE_RESOURCE_TYPE_DELETED (0x00010000)
删除现有资源类型时,队列会收到通知。
CLUSTER_CHANGE_RESOURCE_TYPE_PROPERTY (0x00040000)
当资源类型的 属性 发生更改时,队列会收到通知。
[in] hObject
受 dwFilterType 参数中指定的事件影响的故障转移群集对象的句柄。 句柄的类型取决于 dwFilterType 的值,如以下列表中所述。
CLUSTER_CHANGE_CLUSTER_PROPERTY
HCLUSTER
CLUSTER_CHANGE_CLUSTER_STATE
HCLUSTER
CLUSTER_CHANGE_GROUP_DELETED
HGROUP
CLUSTER_CHANGE_GROUP_PROPERTY
HGROUP
CLUSTER_CHANGE_GROUP_STATE
HGROUP
CLUSTER_CHANGE_HANDLE_CLOSE
如果标志本身使用,则为 HCLUSTER;否则,与CLUSTER_CHANGE_HANDLE_CLOSE与 合并的标志关联的句柄将成为句柄类型。
例如,如果 dwFilterType 参数的值 CLUSTER_CHANGE_GROUP_PROPERTY | CLUSTER_CHANGE_HANDLE_CLOSE,则 hObject 参数的句柄类型将变为 HGROUP,因为 CLUSTER_CHANGE_GROUP_PROPERTY 标志与 HGROUP 句柄类型相关联。
CLUSTER_CHANGE_NODE_DELETED
HNODE
CLUSTER_CHANGE_NODE_PROPERTY
HNODE
CLUSTER_CHANGE_NODE_STATE
HNODE
CLUSTER_CHANGE_REGISTRY_ATTRIBUTES
HKEY
CLUSTER_CHANGE_REGISTRY_NAME
HKEY
CLUSTER_CHANGE_REGISTRY_SUBTREE
HKEY
CLUSTER_CHANGE_REGISTRY_VALUE
HKEY
CLUSTER_CHANGE_RESOURCE_DELETED
HRESOURCE
CLUSTER_CHANGE_RESOURCE_PROPERTY
HRESOURCE
CLUSTER_CHANGE_RESOURCE_STATE
HRESOURCE
群集数据库函数返回有效的群集数据库密钥,当 dwFilterType 设置为影响群集数据库的事件类型时,该密钥可用于设置 hObject。
[in] dwNotifyKey
发生请求的事件时, 从 GetClusterNotify 返回的通知键。
返回值
如果操作成功,函数将返回 ERROR_SUCCESS。
如果操作失败,该函数将返回 系统错误代码。
备注
RegisterClusterNotify 函数使已使用 CreateClusterNotifyPort 创建通知端口的应用程序能够注册影响节点、资源或组的其他事件。
若要接收 群集数据库 更改的通知,必须在 dwFilterType 参数中设置一个或多个适用于数据库的标志。 适用的标志以前缀CLUSTER_CHANGE_REGISTRY开头。 通过注册表编辑器(RegEdit.exe)手动更改群集数据库不会生成通知。
示例
请参阅 通知端口示例。
要求
| 最低受支持的客户端 | 无受支持的版本 |
| 最低受支持的服务器 | Windows Server 2008 Enterprise、Windows Server 2008 Datacenter |
| 目标平台 | Windows |
| 标头 | clusapi.h |
| Library | ClusAPI.lib |
| DLL | ClusAPI.dll |