共用方式為


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

傳回實際大小 (,以位元組為單位,) 作業所產生的數據。 如果不需要此資訊,請為 lpBytesReturned 傳遞 NULL

傳回值

函式會傳回下列其中一個值。

傳回碼 Description
ERROR_SUCCESS
作業成功。 如果作業需要輸出緩衝區,則 lpBytesReturned (輸入) 指向緩衝區中傳回之數據的實際大小。
ERROR_MORE_DATA
lpOutBuffer 指向的輸出緩衝區不夠大,無法保存作業所產生的數據。 如果輸入) 上不是 NULL則 lpBytesReturned 參數 (指向輸出緩衝區所需的大小。 只有需要輸出緩衝區傳回 ERROR_MORE_DATA的作業。 如果 lpOutBuffer 參數為 NULL ,且 nOutBufferSize 參數為零 ,則ERROR_SUCCESS 可能會傳回,而不是 ERROR_MORE_DATA
系統錯誤碼
作業未成功。 如果作業需要輸出緩衝區,則輸入) 上不是 NULL 時,由 lpBytesReturned 所指定的值 (不可靠。

備註

如果 ClusterGroupControl 傳回 ERROR_MORE_DATA,請將 nOutBufferSize 設定為 lpBytesReturned 指向的位元元組數目,然後再次呼叫函式。

請勿將 LPC 和 RPC 句柄傳遞至相同的函數調用。 否則,呼叫將會引發 RPC 例外狀況,而且可能會有額外的破壞性影響。 如需如何建立 LPC 和 RPC 句柄的資訊,請參閱 LPC 和 RPC 句柄OpenCluster

ClusterGroupControl 是其中一個 控制程式代碼函式。 如需控制程式代碼和控制程式碼函式的詳細資訊,請參閱 使用控件代碼

範例

下列代碼段示範 對 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
程式庫 ClusAPI.lib
Dll ClusAPI.dll

另請參閱

群組控制代碼

OpenCluster