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 |
Library | ClusAPI.lib |
[DLL] | ClusAPI.dll |