CreateCluster function (clusapi.h)

Creates and starts a cluster. The cluster consists of the set of nodes specified, with the Network Name, IP Address, and quorum resources if specified. The PCLUSAPI_CREATE_CLUSTER type defines a pointer to this function.

Syntax

HCLUSTER CreateCluster(
  [in]           PCREATE_CLUSTER_CONFIG           pConfig,
  [in, optional] PCLUSTER_SETUP_PROGRESS_CALLBACK pfnProgressCallback,
  [in, optional] PVOID                            pvCallbackArg
);

Parameters

[in] pConfig

Address of a CREATE_CLUSTER_CONFIG structure containing configuration information about the cluster to be created.

[in, optional] pfnProgressCallback

Address of callback function that matches the PCLUSTER_SETUP_PROGRESS_CALLBACK function pointer that will be called periodically to provide progress on the cluster creation.

[in, optional] pvCallbackArg

Argument for the callback function.

Return value

Handle to the newly created cluster or NULL. A non NULL value does not indicate complete success (all nodes will have been added, but not all IP Address or Network Name resources may have been created. The parameters passed to the function pointed to by the pfnProgressCallback parameter should be checked.

Return code Description
NULL
Less than a majority of nodes were successfully created. For more information about the error, call the function GetLastError.

Remarks

The PCLUSAPI_CREATE_CLUSTER type defines a pointer to this function and can be used with the GetProcAddress function to call this function.

After the CreateCluster function successfully completes, at least 30 seconds should be allowed before the AddClusterNode function is called to add additional nodes.

The CreateCluster function successfully completes after cluster quorum has been achieved. One or more cluster nodes could be in a ClusterNodeDown or ClusterNodeJoining state for a few seconds.

Before calling the CreateCluster function, the CoInitializeEx function must be called specifying both COINIT_MULTITHREADED and COINIT_DISABLE_OLE1DDE for the dwCoInit parameter, as shown in the following code.

CoInitializeEx( NULL, COINIT_MULTITHREADED | COINIT_DISABLE_OLE1DDE );

Requirements

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

See also

AddClusterNode

CREATE_CLUSTER_CONFIG

Cluster Management Functions

DestroyCluster

PCLUSTER_SETUP_PROGRESS_CALLBACK