Win32 API 日本語リファレンス
ホーム › Networking.Clustering › PCLUSAPI_GET_CLUSTER_NOTIFY

PCLUSAPI_GET_CLUSTER_NOTIFY

コールバック

シグネチャ

DWORD PCLUSAPI_GET_CLUSTER_NOTIFY(
    HCHANGE hChange,
    UINT_PTR* lpdwNotifyKey,
    DWORD* lpdwFilterType,
    LPWSTR lpszName,
    DWORD* lpcchName,
    DWORD dwMilliseconds
);

パラメーター

フィールド型説明
hChangeHCHANGECreateClusterNotifyPort 関数で作成された通知ポートのハンドルです。
lpdwNotifyKeyUINT_PTR*hChange パラメーターで識別されるポートの通知キーへのポインターです。
lpdwFilterTypeDWORD*

返されるイベントの種類を示すフラグへのポインターです。このフラグは、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 サービスが最初にインストールされるときだけです。

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)

リソースの種類のプロパティが変更されたときに、キューが通知を受け取ります。

lpszNameLPWSTR

イベントを発生させたクラスターオブジェクトの名前を格納する、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)

削除されたリソースの種類の名前。

lpcchNameDWORD*lpszName バッファーのサイズを文字数で表した値へのポインターです。入力時には、終端の NULL を含めて、バッファーが保持できる最大文字数を指定します。出力時には、終端の NULL を除いた、結果として得られる名前の文字数が格納されます。
dwMillisecondsDWORD省略可能なタイムアウト値で、呼び出し元が通知をどれだけの間待機するかを指定します。

公式ドキュメント

通知ポートに格納されている、次の通知イベントに関する情報を返します。PCLUSAPI_GET_CLUSTER_NOTIFY 型は、この関数へのポインターを定義します。

戻り値

操作が成功した場合、関数は ERROR_SUCCESS を返します。

操作が失敗した場合、関数はシステムエラーコードを返します。とり得る値は次のとおりです。

リターンコード/値 説明
ERROR_INVALID_HANDLE
6
hChange パラメーターで示されるハンドルが無効であるか、別のスレッドによって閉じられました。
WAIT_TIMEOUT
258 (0x102)
通知を正常に返す前に、呼び出しがタイムアウトしました。
ERROR_MORE_DATA
234 (0xEA)
lpszName パラメーターが指すバッファーは、結果を格納するのに十分な大きさではありません。lpcchName パラメーターは、終端の NULL を除いた結果の文字数を返します。

解説(Remarks)

lpcchName パラメーターはバイト数ではなく文字数を表し、返されるサイズには終端の NULL が含まれない点に注意してください。バッファーのサイズ指定の詳細については、データサイズの規則を参照してください。

通知は非同期であり、アプリケーションが通知を処理する時点のクラスターの状態は、通知が生成された時点のクラスターの状態と異なる場合があります。

例

通知ポートの例を参照してください。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)