次の方法で共有


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

実行する操作を指定する グループ コントロール コード 。 コントロール コードに関連付けられている構文については、 を参照してください。
コード アーキテクチャ と次のトピックを制御します。

[in, optional] lpInBuffer

操作に必要な情報を含む入力バッファーへのポインター。情報が必要ない場合は NULL

[in] nInBufferSize

入力バッファーの割り当てられたサイズ (バイト単位)。

[out, optional] lpOutBuffer

操作の結果として得られるデータを受け取る出力バッファーへのポインター。データが返されない場合は NULL

[in] nOutBufferSize

出力バッファーの割り当てられたサイズ (バイト単位)。

[out, optional] lpBytesReturned

操作に起因するデータの実際のサイズ (バイト単位) を返します。 この情報が必要ない場合は、lpBytesReturnedNULL を渡します。

戻り値

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

リターン コード 説明
ERROR_SUCCESS
操作に成功しました。 操作で出力バッファーが必要な場合、 lpBytesReturned (入力時に NULL でない場合) は、バッファーに返されるデータの実際のサイズを指します。
ERROR_MORE_DATA
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

こちらもご覧ください

グループ コントロール コード

OpenCluster