PCLUSAPI_REGISTER_CLUSTER_NOTIFY
コールバックシグネチャ
DWORD PCLUSAPI_REGISTER_CLUSTER_NOTIFY(
HCHANGE hChange,
DWORD dwFilterType,
HANDLE hObject,
UINT_PTR dwNotifyKey
);パラメーター
| フィールド | 型 | 説明 |
|---|---|---|
| hChange | HCHANGE | CreateClusterNotifyPort 関数で作成された通知ポートのハンドルです。 |
| dwFilterType | DWORD | 通知ポートが現在監視しているイベントの集合に追加するイベントを表す、フラグのビットマスクです。これらのイベントの種類について詳しくは、CreateClusterNotifyPort を参照してください。dwFilterType パラメーターには、次のいずれかのフラグを設定できます。 CLUSTER_CHANGE_CLUSTER_PROPERTY (0x40000000)クラスターの内部ネットワークの優先順位付きリストが変更されたときに、キューが通知を受け取ります。 CLUSTER_CHANGE_CLUSTER_RECONNECThCluster で識別されるクラスターへの接続が、短時間の切断の後に再確立されたときに、キューが通知を受け取ります。このイベントの直前または直後に生成されたイベントの一部は、失われている可能性があります。正確な状態情報を受け取るには、開いているすべての接続を閉じて接続し直す必要があります。 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 サービスが最初にインストールされるときだけです。 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)リソースの種類のプロパティが変更されたときに、キューが通知を受け取ります。 |
| hObject | HANDLE | dwFilterType パラメーターで指定したイベントの影響を受けるフェールオーバー クラスター オブジェクトのハンドルです。ハンドルの型は、次の一覧に示すように dwFilterType の値によって決まります。 CLUSTER_CHANGE_CLUSTER_PROPERTYHCLUSTER CLUSTER_CHANGE_CLUSTER_STATEHCLUSTER CLUSTER_CHANGE_GROUP_DELETEDHGROUP CLUSTER_CHANGE_GROUP_PROPERTYHGROUP CLUSTER_CHANGE_GROUP_STATEHGROUP CLUSTER_CHANGE_HANDLE_CLOSEこのフラグを単独で使用する場合は HCLUSTER です。それ以外の場合は、CLUSTER_CHANGE_HANDLE_CLOSE と組み合わせたフラグに関連付けられているハンドルが、ハンドルの型になります。 たとえば、dwFilterType パラメーターの値が CLUSTER_CHANGE_GROUP_PROPERTY | CLUSTER_CHANGE_HANDLE_CLOSE の場合、CLUSTER_CHANGE_GROUP_PROPERTY フラグは HGROUP ハンドル型に関連付けられているため、hObject パラメーターのハンドルの型は HGROUP になります。 CLUSTER_CHANGE_NODE_DELETEDHNODE CLUSTER_CHANGE_NODE_PROPERTYHNODE CLUSTER_CHANGE_NODE_STATEHNODE CLUSTER_CHANGE_REGISTRY_ATTRIBUTESHKEY CLUSTER_CHANGE_REGISTRY_NAMEHKEY CLUSTER_CHANGE_REGISTRY_SUBTREEHKEY CLUSTER_CHANGE_REGISTRY_VALUEHKEY CLUSTER_CHANGE_RESOURCE_DELETEDHRESOURCE CLUSTER_CHANGE_RESOURCE_PROPERTYHRESOURCE CLUSTER_CHANGE_RESOURCE_STATEHRESOURCE dwFilterType にクラスター データベースに影響するイベントの種類を設定した場合、クラスター データベース関数は、hObject の設定に使用できる有効なクラスター データベース キーを返します。 |
| dwNotifyKey | UINT_PTR | 要求したイベントが発生したときに GetClusterNotify から返される通知キーです。 |
公式ドキュメント
通知ポートに対して保存されるイベントの一覧に、イベントの種類を追加します。PCLUSAPI_REGISTER_CLUSTER_NOTIFY 型は、この関数へのポインターを定義します。
戻り値
操作が成功した場合、この関数は ERROR_SUCCESS を返します。
操作が失敗した場合、この関数はシステム エラー コードを返します。
解説(Remarks)
RegisterClusterNotify 関数を使用すると、CreateClusterNotifyPort で通知ポートを既に作成しているアプリケーションが、ノード、リソース、グループに影響する追加のイベントを登録できます。
クラスター データベースの変更の通知を受け取るには、データベースに該当するフラグを 1 つ以上 dwFilterType パラメーターに設定する必要があります。該当するフラグは、プレフィックス CLUSTER_CHANGE_REGISTRY で始まります。レジストリ エディター RegEdit.exe を使用してクラスター データベースを手動で変更しても、通知は生成されません。
例
通知ポートの例を参照してください。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)