Partager via


ClusterGroupControl, fonction (clusapi.h)

Lance une opération qui affecte un groupe. L’opération effectuée dépend du code de contrôle passé au paramètre dwControlCode .

Syntaxe

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

Paramètres

[in] hGroup

Gérez le groupe à affecter.

[in, optional] hHostNode

Si la valeur n’est pas NULL, gérez le nœud pour effectuer l’opération représentée par le code de contrôle. Si la valeur est NULL, le nœud propriétaire du groupe effectue l’opération. La spécification de hHostNode est facultative.

[in] dwControlCode

Code de contrôle de groupe spécifiant l’opération à effectuer. Pour connaître la syntaxe associée à un code de contrôle, reportez-vous à
Architecture du code de contrôle et les rubriques suivantes :

[in, optional] lpInBuffer

Pointeur vers une mémoire tampon d’entrée contenant les informations nécessaires à l’opération, ou NULL si aucune information n’est nécessaire.

[in] nInBufferSize

Taille allouée (en octets) de la mémoire tampon d’entrée.

[out, optional] lpOutBuffer

Pointeur vers une mémoire tampon de sortie pour recevoir les données résultant de l’opération, ou NULL si aucune donnée ne sera retournée.

[in] nOutBufferSize

Taille allouée (en octets) de la mémoire tampon de sortie.

[out, optional] lpBytesReturned

Retourne la taille réelle (en octets) des données résultant de l’opération. Si ces informations ne sont pas nécessaires, passez null pour lpBytesReturned.

Valeur retournée

La fonction retourne l’une des valeurs suivantes.

Code de retour Description
ERROR_SUCCESS
L'opération a réussi. Si l’opération nécessitait une mémoire tampon de sortie, lpBytesReturned (si ce n’est pas NULL en entrée) pointe vers la taille réelle des données retournées dans la mémoire tampon.
ERROR_MORE_DATA
La mémoire tampon de sortie pointée par lpOutBuffer n’était pas assez grande pour contenir les données résultant de l’opération. Le paramètre lpBytesReturned (s’il n’est pas NULL en entrée) pointe vers la taille requise pour la mémoire tampon de sortie. Seules les opérations nécessitant une mémoire tampon de sortie retournent ERROR_MORE_DATA. Si le paramètre lpOutBuffer a la valeur NULL et que le paramètre nOutBufferSize est égal à zéro, ERROR_SUCCESS peut être retourné, et non ERROR_MORE_DATA.
Code d’erreur système
L’opération n’a pas réussi. Si l’opération nécessitait une mémoire tampon de sortie, la valeur spécifiée par lpBytesReturned (si elle n’est pas NULL en entrée) n’est pas fiable.

Remarques

Si ClusterGroupControl retourne ERROR_MORE_DATA, définissez nOutBufferSize sur le nombre d’octets pointés par lpBytesReturned et appelez à nouveau la fonction.

Ne passez pas de handles LPC et RPC au même appel de fonction. Sinon, l’appel déclenche une exception RPC et peut avoir des effets destructeurs supplémentaires. Pour plus d’informations sur la création des handles LPC et RPC, consultez Handles LPC et RPC et OpenCluster.

ClusterGroupControl est l’une des fonctions de code de contrôle. Pour plus d’informations sur les codes de contrôle et les fonctions de code de contrôle, consultez Utilisation des codes de contrôle.

Exemples

Le fragment de code suivant illustre un appel à 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.
}

Configuration requise

Condition requise Valeur
Client minimal pris en charge Aucun pris en charge
Serveur minimal pris en charge Windows Server 2008 Entreprise, Windows Server 2008 Datacenter
Plateforme cible Windows
En-tête clusapi.h
Bibliothèque ClusAPI.lib
DLL ClusAPI.dll

Voir aussi

Codes de contrôle de groupe

OpenCluster