ClusterGroupControl 関数 (clusapi.h)
グループに影響を与える操作を開始します。 実行される操作は、dwControlCode パラメーターに渡されるコントロール コードによって異なります。
構文
DWORD ClusterGroupControl(
[in] HGROUP hGroup,
[in, optional] HNODE hHostNode,
[in] DWORD dwControlCode,
[in, optional] LPVOID lpInBuffer,
[in] DWORD nInBufferSize,
[out, optional] LPVOID lpOutBuffer,
[in] DWORD nOutBufferSize,
[out, optional] LPDWORD lpBytesReturned
);
パラメーター
[in] hGroup
影響を受けるグループへのハンドル。
[in, optional] hHostNode
NULL 以外の場合は、コントロール コードで表される操作を実行するノードを処理します。 NULL の場合、グループを所有するノードが操作を実行します。 hHostNode の指定は省略可能です。
[in] dwControlCode
実行する操作を指定する グループ コントロール コード 。 コントロール コードに関連付けられている構文については、 を参照してください。
コード アーキテクチャ と次のトピックを制御します。
- CLUSCTL_GROUP_ENUM_COMMON_PROPERTIES
- CLUSCTL_GROUP_ENUM_PRIVATE_PROPERTIES
- CLUSCTL_GROUP_GET_CHARACTERISTICS
- CLUSCTL_GROUP_GET_COMMON_PROPERTIES
- CLUSCTL_GROUP_GET_COMMON_PROPERTY_FMTS
- CLUSCTL_GROUP_GET_FLAGS
- CLUSCTL_GROUP_GET_ID
- CLUSCTL_GROUP_GET_NAME
- CLUSCTL_GROUP_GET_PRIVATE_PROPERTIES
- CLUSCTL_GROUP_GET_PRIVATE_PROPERTY_FMTS
- CLUSCTL_GROUP_GET_RO_COMMON_PROPERTIES
- CLUSCTL_GROUP_GET_RO_PRIVATE_PROPERTIES
- CLUSCTL_GROUP_QUERY_DELETE
- CLUSCTL_GROUP_SET_COMMON_PROPERTIES
- CLUSCTL_GROUP_SET_PRIVATE_PROPERTIES
- CLUSCTL_GROUP_UNKNOWN
- CLUSCTL_GROUP_VALIDATE_COMMON_PROPERTIES
- CLUSCTL_GROUP_VALIDATE_PRIVATE_PROPERTIES
[in, optional] lpInBuffer
操作に必要な情報を含む入力バッファーへのポインター。情報が必要ない場合は NULL 。
[in] nInBufferSize
入力バッファーの割り当てられたサイズ (バイト単位)。
[out, optional] lpOutBuffer
操作の結果として得られるデータを受け取る出力バッファーへのポインター。データが返されない場合は NULL 。
[in] nOutBufferSize
出力バッファーの割り当てられたサイズ (バイト単位)。
[out, optional] lpBytesReturned
操作に起因するデータの実際のサイズ (バイト単位) を返します。 この情報が必要ない場合は、lpBytesReturned に NULL を渡します。
戻り値
関数は、次のいずれかの値を返します。
リターン コード | 説明 |
---|---|
|
操作に成功しました。 操作で出力バッファーが必要な場合、 lpBytesReturned (入力時に NULL でない場合) は、バッファーに返されるデータの実際のサイズを指します。 |
|
lpOutBuffer が指す出力バッファーが、操作の結果として得られるデータを保持するのに十分な大きさではなかった。 lpBytesReturned パラメーター (入力時に NULL でない場合) は、出力バッファーに必要なサイズを指します。 出力バッファーを必要とする操作のみが ERROR_MORE_DATAを返します。 lpOutBuffer パラメーターが NULL で、nOutBufferSize パラメーターが 0 の場合は、ERROR_MORE_DATAではなく、ERROR_SUCCESSが返される可能性があります。 |
操作が成功しなかった。 操作で出力バッファーが必要な場合、 lpBytesReturned (入力時に NULL でない場合) で指定された値は信頼できません。 |
注釈
ClusterGroupControl がERROR_MORE_DATAを返す場合は、lpBytesReturned が指すバイト数に nOutBufferSize を設定し、関数をもう一度呼び出します。
LPC ハンドルと RPC ハンドルを同じ関数呼び出しに渡さないでください。 それ以外の場合、呼び出しによって RPC 例外が発生し、破壊的効果が追加される可能性があります。 LPC および RPC ハンドルの作成方法については、「LPC および RPC ハンドル」および「OpenCluster」を参照してください。
ClusterGroupControl は 、コントロール コード関数の 1 つです。 コントロール コードとコントロール コード関数の詳細については、「コントロール コードの 使用」を参照してください。
例
次のコード フラグメントは、 ClusterGroupControl の呼び出しを示しています。
// Allocate buffer.
lpPropList = LocalAlloc( LPTR, cbAllocated );
// Initial call.
dwResult = ClusterGroupControl( hCluster,
NULL,
CLUSCTL_GROUP_GET_COMMON_PROPERTIES,
NULL,
0,
lpPropList,
cbAllocated,
&cbReturned );
// If the buffer was too small, reallocate it to the necessary size,
// returned in cbReturned.
if ( dwResult == ERROR_MORE_DATA )
{
LocalFree( lpPropList );
cbAllocated = cbReturned;
lpPropList = LocalAlloc( LPTR, cbAllocated );
if ( lpPropList == NULL )
{
// Respond to error.
}
dwResult = ClusterGroupControl( hCluster,
NULL,
CLUSCTL_GROUP_GET_COMMON_PROPERTIES,
NULL,
0,
lpPropList,
cbAllocated,
&cbReturned );
}
if ( dwResult != ERROR_SUCCESS )
{
// Respond to error.
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | サポートなし |
サポートされている最小のサーバー | Windows Server 2008 Enterprise、Windows Server 2008 Datacenter |
対象プラットフォーム | Windows |
ヘッダー | clusapi.h |
Library | ClusAPI.lib |
[DLL] | ClusAPI.dll |