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:
- CLUSCTL_GROUP_ENUM_COMMON_PROPERTIES
- CLUSCTL_GROUP_ENUM_PRIVATE_PROPERTIES
- CLUSCTL_GROUP_GET_CHARACTERISTICS
- CLUSCTL_GROUP_GET_COMMON_PROPERTIES
- CLUSCTL_GROUP_GET_COMMON_PROPERTY_FMTS
- CLUSCTL_GROUP_GET_FLAGS
- CLUSCTL_GROUP_GET_ID
- CLUSCTL_GROUP_GET_NAME
- CLUSCTL_GROUP_GET_PRIVATE_PROPERTIES
- CLUSCTL_GROUP_GET_PRIVATE_PROPERTY_FMTS
- CLUSCTL_GROUP_GET_RO_COMMON_PROPERTIES
- CLUSCTL_GROUP_GET_RO_PRIVATE_PROPERTIES
- CLUSCTL_GROUP_QUERY_DELETE
- CLUSCTL_GROUP_SET_COMMON_PROPERTIES
- CLUSCTL_GROUP_SET_PRIVATE_PROPERTIES
- CLUSCTL_GROUP_UNKNOWN
- CLUSCTL_GROUP_VALIDATE_COMMON_PROPERTIES
- CLUSCTL_GROUP_VALIDATE_PRIVATE_PROPERTIES
[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 |
---|---|
|
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. |
|
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. |
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 |