PCLUSAPI_CREATE_CLUSTER
コールバックシグネチャ
HCLUSTER PCLUSAPI_CREATE_CLUSTER(
CREATE_CLUSTER_CONFIG* pConfig,
PCLUSTER_SETUP_PROGRESS_CALLBACK pfnProgressCallback,
void* pvCallbackArg
);パラメーター
| フィールド | 型 | 説明 |
|---|---|---|
| pConfig | CREATE_CLUSTER_CONFIG* | 作成するクラスターの構成情報を格納した CREATE_CLUSTER_CONFIG 構造体のアドレスです。 |
| pfnProgressCallback | PCLUSTER_SETUP_PROGRESS_CALLBACK | PCLUSTER_SETUP_PROGRESS_CALLBACK 関数ポインターに一致するコールバック関数のアドレスです。この関数は、クラスターの作成の進行状況を通知するために定期的に呼び出されます。 |
| pvCallbackArg | void* | コールバック関数に渡される引数です。 |
公式ドキュメント
クラスターを作成して開始します。クラスターは指定された一連のノードで構成され、指定されている場合は Network Name、IP Address、および クォーラム リソースも含まれます。PCLUSAPI_CREATE_CLUSTER 型は、この関数へのポインターを定義します。
戻り値
新しく作成されたクラスターのハンドル、または NULL です。NULL 以外の値が返っても、完全に成功したことを示すわけではありません (すべてのノードは追加されていますが、IP Address リソースや Network Name リソースのすべてが作成されているとは限りません)。pfnProgressCallback パラメーターが指す関数に渡されたパラメーターを確認してください。
| 戻り値 | 説明 |
|---|---|
|
正常に作成されたノードが過半数に達しませんでした。エラーの詳細については、GetLastError 関数を呼び出してください。 |
解説(Remarks)
PCLUSAPI_CREATE_CLUSTER 型はこの関数へのポインターを定義しており、GetProcAddress 関数と組み合わせてこの関数を呼び出すために使用できます。
CreateCluster 関数が正常に完了した後、ノードを追加するために AddClusterNode 関数を呼び出すまでには、少なくとも 30 秒の間隔を空けてください。
CreateCluster 関数は、クラスターのクォーラムが確立された時点で正常に完了します。その後数秒間は、1 つ以上のクラスター ノードが ClusterNodeDown または ClusterNodeJoining の状態になっていることがあります。
CreateCluster 関数を呼び出す前に、次のコードのように、dwCoInit パラメーターに COINIT_MULTITHREADED と COINIT_DISABLE_OLE1DDE の両方を指定して CoInitializeEx 関数を呼び出しておく必要があります。
CoInitializeEx( NULL, COINIT_MULTITHREADED | COINIT_DISABLE_OLE1DDE );
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)