GetClusterNotify 函式 (clusapi.h)
傳回與針對通知埠儲存之下一個通知事件相關的資訊。 PCLUSAPI_GET_CLUSTER_NOTIFY類型會定義此函式的指標。
語法
DWORD GetClusterNotify(
[in] HCHANGE hChange,
[out] DWORD_PTR *lpdwNotifyKey,
[out] LPDWORD lpdwFilterType,
[out] LPWSTR lpszName,
[in, out] LPDWORD lpcchName,
[in, optional] DWORD dwMilliseconds
);
參數
[in] hChange
使用 CreateClusterNotifyPort 函式所建立之通知埠的控制碼。
[out] lpdwNotifyKey
hChange參數所識別之埠之通知金鑰的指標。
[out] lpdwFilterType
旗標的指標,表示傳回事件的型別。 此旗標是 來自CLUSTER_CHANGE 列舉的下列其中一個值。
CLUSTER_CHANGE_CLUSTER_PROPERTY (0x40000000)
佇列會在叢集的內部 網路 優先順序清單變更時收到通知。
CLUSTER_CHANGE_CLUSTER_RECONNECT (0x00080000)
當 連線到 由 識別的叢集時,佇列會收到通知
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)
當群組變更狀態時,佇列會收到通知。 如需可能的群組狀態值清單,請參閱 GetClusterGroupState。
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)
當節點變更狀態時,佇列會收到通知。 如需可能的節點狀態值清單,請參閱 GetClusterNodeState。
CLUSTER_CHANGE_QUORUM_STATE (0x10000000)
此通知保留供日後使用。
CLUSTER_CHANGE_REGISTRY_ATTRIBUTES (0x00000020)
當 叢集資料庫 金鑰的屬性變更時,佇列會收到通知。 目前唯一定義的叢集資料庫金鑰屬性是其安全性描述元,可以使用 ClusterRegSetKeySecurity進行變更。
CLUSTER_CHANGE_REGISTRY_NAME (0x00000010)
當叢集資料庫金鑰的名稱變更時,佇列會收到通知。
CLUSTER_CHANGE_REGISTRY_SUBTREE (0x00000080)
表示其他 CLUSTER_CHANGE_REGISTRY 事件會套用至整個叢集資料庫。 如果未包含此旗標,事件只會套用至指定的索引鍵。
CLUSTER_CHANGE_REGISTRY_VALUE (0x00000040)
當指定叢集資料庫索引鍵的值變更或刪除時,佇列會收到通知。 您可以使用 ClusterRegSetValue 函式來變更叢集資料庫值,並使用 ClusterRegDeleteValue 函式刪除。
CLUSTER_CHANGE_RESOURCE_ADDED (0x00000400)
當叢集中建立新 資源 時,佇列會收到通知。
CLUSTER_CHANGE_RESOURCE_DELETED (0x00000200)
佇列會在刪除資源時收到通知。
CLUSTER_CHANGE_RESOURCE_PROPERTY (0x00000800)
當資源 的屬性、 相依性或 可能的擁有者 節點變更時,佇列會收到通知。
CLUSTER_CHANGE_RESOURCE_STATE (0x00000100)
當資源變更狀態時,佇列會收到通知。 如需可能的資源狀態值清單,請參閱 GetClusterResourceState。
CLUSTER_CHANGE_RESOURCE_TYPE_ADDED (0x00020000)
當叢集中建立新的 資源類型 時,佇列會收到通知。
CLUSTER_CHANGE_RESOURCE_TYPE_DELETED (0x00010000)
刪除現有的資源類型時,佇列會收到通知。
CLUSTER_CHANGE_RESOURCE_TYPE_PROPERTY (0x00040000)
當資源類型 的屬性 變更時,佇列會收到通知。
[out] lpszName
Null 終止 Unicode 字串的指標,其中包含觸發事件的 叢集物件 名稱。 下列清單會依事件種類描述 lpszName 的內容。 請注意, 資料表 中不包含CLUSTER_CHANGE_REGISTRY_SUBTREE; GetClusterNotify永遠不會處理此事件種類。
CLUSTER_CHANGE_CLUSTER_PROPERTY (0x40000000)
已變更叢集的名稱。
CLUSTER_CHANGE_CLUSTER_RECONNECT (0x00080000)
已中斷連線叢集的名稱。
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_NODE_ADDED (0x00000004)
新 節點的名稱。
CLUSTER_CHANGE_NODE_DELETED (0x00000002)
已刪除節點的名稱。
CLUSTER_CHANGE_NODE_PROPERTY (0x00000008)
已變更節點的名稱。
CLUSTER_CHANGE_NODE_STATE (0x00000001)
已變更節點的名稱。
CLUSTER_CHANGE_REGISTRY_ATTRIBUTES (0x00000020)
已變更 叢集資料庫 金鑰的相對名稱。
CLUSTER_CHANGE_REGISTRY_NAME (0x00000010)
已變更叢集資料庫金鑰的相對名稱。
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)
已刪除的資源類型名稱。
[in, out] lpcchName
以字元計數表示 之 lpszName 緩衝區大小的指標。 在輸入時,指定緩衝區可以保留的最大字元數,包括終止 的 Null。 在輸出中,指定結果名稱中的字元數,不包括終止 Null。
[in, optional] dwMilliseconds
選擇性逾時值,指定來電者願意等候通知的時間長度。
傳回值
如果作業成功,函式會 傳回ERROR_SUCCESS。
如果作業失敗,函式會傳回 系統錯誤碼。 以下是可能的值。
傳回碼/值 | Description |
---|---|
|
hChange參數中所表示的控制碼無效,或已由另一個執行緒關閉。 |
|
成功傳回通知之前,呼叫逾時。 |
|
lpszName參數指向的緩衝區不夠大,無法保存結果。 lpcchName參數會傳回結果中的字元數,不包括終止Null。 |
備註
請注意, lpcchName 參數是指字元計數,而不是位元組計數,而且傳回的大小不包含計數中的終止 Null 。 如需調整大小緩衝區的詳細資訊,請參閱 資料大小慣例。
通知是非同步,而且應用程式處理通知時叢集的狀態可能會與產生通知時叢集的狀態不同。
範例
請參閱 通知埠範例。
規格需求
最低支援的用戶端 | 都不支援 |
最低支援的伺服器 | Windows Server 2008 Enterprise、Windows Server 2008 Datacenter |
目標平台 | Windows |
標頭 | clusapi.h |
程式庫 | ClusAPI.lib |
Dll | ClusAPI.dll |