Condividi tramite


Funzione ClusterGroupControl (clusapi.h)

Avvia un'operazione che influisce su un gruppo. L'operazione eseguita dipende dal codice di controllo passato al parametro dwControlCode .

Sintassi

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
);

Parametri

[in] hGroup

Handle per il gruppo da interessata.

[in, optional] hHostNode

Se non NULL, gestire il nodo per eseguire l'operazione rappresentata dal codice di controllo. Se NULL, il nodo proprietario del gruppo esegue l'operazione. Specificare hHostNode è facoltativo.

[in] dwControlCode

Codice di controllo del gruppo che specifica l'operazione da eseguire. Per la sintassi associata a un codice di controllo, fare riferimento a
Architettura del codice di controllo e gli argomenti seguenti:

[in, optional] lpInBuffer

Puntatore a un buffer di input contenente informazioni necessarie per l'operazione o NULL se non sono necessarie informazioni.

[in] nInBufferSize

Dimensione allocata (in byte) del buffer di input.

[out, optional] lpOutBuffer

Puntatore a un buffer di output per ricevere i dati risultanti dall'operazione oppure NULL se non verranno restituiti dati.

[in] nOutBufferSize

Dimensione allocata (in byte) del buffer di output.

[out, optional] lpBytesReturned

Restituisce le dimensioni effettive (in byte) dei dati risultanti dall'operazione. Se queste informazioni non sono necessarie, passare NULL per lpBytesReturned.

Valore restituito

La funzione restituisce uno dei valori seguenti.

Codice restituito Descrizione
ERROR_SUCCESS
L'operazione è stata completata. Se l'operazione richiede un buffer di output, lpBytesReturned (se non NULL in input) punta alle dimensioni effettive dei dati restituiti nel buffer.
ERROR_MORE_DATA
Il buffer di output a cui punta lpOutBuffer non è sufficiente per contenere i dati risultanti dall'operazione. Il parametro lpBytesReturned (se non NULL nell'input) punta alle dimensioni necessarie per il buffer di output. Solo le operazioni che richiedono un buffer di output restituiscono ERROR_MORE_DATA. Se il parametro lpOutBuffer è NULL e il parametro nOutBufferSize è zero, è possibile che venga restituito ERROR_SUCCESS, non ERROR_MORE_DATA.
Codice di errore di sistema
L'operazione non è riuscita. Se l'operazione richiede un buffer di output, il valore specificato da lpBytesReturned (se non NULL in input) non è affidabile.

Commenti

Se ClusterGroupControl restituisce ERROR_MORE_DATA, impostare nOutBufferSize sul numero di byte a cui punta lpBytesReturned e chiamare di nuovo la funzione.

Non passare handle LPC e RPC alla stessa chiamata di funzione. In caso contrario, la chiamata genererà un'eccezione RPC e può avere effetti distruttivi aggiuntivi. Per informazioni sulla creazione degli handle LPC e RPC, vedere Handle LPC e RPC e OpenCluster.

ClusterGroupControl è una delle funzioni del codice di controllo. Per altre informazioni sui codici di controllo e sulle funzioni del codice di controllo, vedere Uso dei codici di controllo.

Esempio

Il frammento di codice seguente illustra una chiamata a 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.
}

Requisiti

Requisito Valore
Client minimo supportato Nessuno supportato
Server minimo supportato Windows Server 2008 Enterprise, Windows Server 2008 Datacenter
Piattaforma di destinazione Windows
Intestazione clusapi.h
Libreria ClusAPI.lib
DLL ClusAPI.dll

Vedi anche

Codici di controllo di gruppo

OpenCluster