ClusterControl function (clusapi.h)

Initiates an operation that affects a cluster. The operation performed depends on the control code passed to the dwControlCode parameter.

Syntax

DWORD ClusterControl(
  [in]            HCLUSTER hCluster,
  [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
);

Parameters

[in] hCluster

Handle to the cluster to be affected.

[in, optional] hHostNode

If non-NULL, handle to the node to perform the operation represented by the control code. If NULL, the local node performs the operation. Specifying hHostNode is optional.

[in] dwControlCode

A cluster control code from the CLUSCTL_CLUSTER_CODES enumeration that specifies the operation to be performed. For the syntax associated with a control code, refer to Control Code Architecture and the following topics:

[in, optional] lpInBuffer

Pointer to an input buffer containing information needed for the operation, or NULL if no information is needed.

[in] nInBufferSize

The allocated size (in bytes) of the input buffer.

[out, optional] lpOutBuffer

Pointer to an output buffer to receive the data resulting from the operation, or NULL if no data will be returned.

[in] nOutBufferSize

The allocated size (in bytes) of the output buffer.

[out, optional] lpBytesReturned

Returns the actual size (in bytes) of the data resulting from the operation. If this information is not needed, pass NULL for lpcbBytesReturned.

Return value

The function returns one of the following values.

Return code Description
ERROR_SUCCESS
The operation was successful. If the operation required an output buffer, lpcbBytesReturned (if not NULL on input) points to the actual size of the data returned in the buffer.
ERROR_MORE_DATA
The output buffer pointed to by lpOutBuffer was not large enough to hold the data resulting from the operation. The lpcbBytesReturned parameter (if not NULL on input) points to the size required for the output buffer. Only operations requiring an output buffer return ERROR_MORE_DATA. If the lpOutBuffer parameter is NULL and the nOutBufferSize parameter is zero, then ERROR_SUCCESS may be returned, not ERROR_MORE_DATA.
System error code
The operation was not successful. If the operation required an output buffer, the value specified by lpcbBytesReturned (if not NULL on input) is unreliable.

Remarks

If ClusterControl returns ERROR_MORE_DATA, set nOutBufferSize to the number of bytes pointed to by lpcbBytesReturned and call the function again.

Do not pass LPC and RPC handles to the same function call. Otherwise, the call will raise an RPC exception and can have additional destructive effects. For information on how LPC and RPC handles are created, see LPC and RPC Handles and OpenCluster.

ClusterControl is one of the control code functions. For more information on control codes and control code functions, see Using Control Codes.

Requirements

Requirement Value
Minimum supported client None supported
Minimum supported server Windows Server 2008 Enterprise, Windows Server 2008 Datacenter
Target Platform Windows
Header clusapi.h
Library ClusAPI.lib
DLL ClusAPI.dll

See also

Cluster Control Codes

OpenCluster