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

PCLUSAPI_CLUSTER_CONTROL

コールバック

シグネチャ

DWORD PCLUSAPI_CLUSTER_CONTROL(
    HCLUSTER hCluster,
    HNODE hHostNode,
    DWORD dwControlCode,
    void* lpInBuffer,
    DWORD nInBufferSize,
    void* lpOutBuffer,
    DWORD nOutBufferSize,
    DWORD* lpBytesReturned
);

パラメーター

フィールド型説明
hClusterHCLUSTER対象となるクラスターのハンドルです。
hHostNodeHNODENULL 以外の場合は、コントロールコードが表す操作を実行するノードのハンドルです。NULL の場合は、ローカルノードが操作を実行します。hHostNode の指定は省略可能です。
dwControlCodeDWORD

実行する操作を指定する、CLUSCTL_CLUSTER_CODES 列挙型のクラスターコントロールコードです。コントロールコードに対応する構文については、Control Code Architecture および次のトピックを参照してください。

lpInBuffervoid*操作に必要な情報を格納した入力バッファーへのポインターです。情報が不要な場合は NULL を指定します。
nInBufferSizeDWORD入力バッファーに割り当てられたサイズ (バイト単位) です。
lpOutBuffervoid*操作の結果得られるデータを受け取る出力バッファーへのポインターです。データが返されない場合は NULL を指定します。
nOutBufferSizeDWORD出力バッファーに割り当てられたサイズ (バイト単位) です。
lpBytesReturnedDWORD*操作の結果得られたデータの実際のサイズ (バイト単位) を返します。この情報が不要な場合は、lpcbBytesReturned に NULL を渡します。

公式ドキュメント

クラスターに影響する操作を開始します。実行される操作は、dwControlCode パラメーターに渡されたコントロールコードによって決まります。

戻り値

この関数は、次のいずれかの値を返します。

戻り値 説明
ERROR_SUCCESS
操作は成功しました。操作が出力バッファーを必要とする場合、lpcbBytesReturned は (入力時に NULL でなければ) バッファーに返されたデータの実際のサイズを指します。
ERROR_MORE_DATA
lpOutBuffer が指す出力バッファーが、操作の結果得られたデータを保持するには小さすぎました。lpcbBytesReturned パラメーターは (入力時に NULL でなければ) 出力バッファーに必要なサイズを指します。ERROR_MORE_DATA を返すのは、出力バッファーを必要とする操作だけです。lpOutBuffer パラメーターが NULL で、nOutBufferSize パラメーターが 0 の場合は、ERROR_MORE_DATA ではなく ERROR_SUCCESS が返されることがあります。
システムエラーコード
操作は失敗しました。操作が出力バッファーを必要とする場合、lpcbBytesReturned で指定される値は (入力時に NULL でなければ) 信頼できません。

解説(Remarks)

ClusterControl が ERROR_MORE_DATA を返した場合は、nOutBufferSize に lpcbBytesReturned が指すバイト数を設定して、関数を再度呼び出してください。

同じ関数呼び出しに LPC ハンドルと RPC ハンドルを混在させて渡さないでください。混在させると、呼び出しは RPC 例外を発生させ、さらに破壊的な影響を及ぼすおそれがあります。LPC ハンドルと RPC ハンドルの作成方法については、LPC and RPC Handles および OpenCluster を参照してください。

ClusterControl はコントロールコード関数の 1 つです。コントロールコードおよびコントロールコード関数の詳細については、Using Control Codes を参照してください。

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