Función ClusterGroupControl (clusapi.h)
Inicia una operación que afecta a un grupo. La operación realizada depende del código de control pasado al parámetro dwControlCode .
Sintaxis
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
);
Parámetros
[in] hGroup
Controle al grupo que se va a ver afectado.
[in, optional] hHostNode
Si no es NULL, controle el nodo para realizar la operación representada por el código de control. Si es NULL, el nodo propietario del grupo realiza la operación. Especificar hHostNode es opcional.
[in] dwControlCode
Código de control de grupo que especifica la operación que se va a realizar. Para obtener la sintaxis asociada a un código de control, consulte
Control de la arquitectura de código y los temas siguientes:
- 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
Puntero a un búfer de entrada que contiene información necesaria para la operación o NULL si no se necesita información.
[in] nInBufferSize
Tamaño asignado (en bytes) del búfer de entrada.
[out, optional] lpOutBuffer
Puntero a un búfer de salida para recibir los datos resultantes de la operación, o NULL si no se devolverán datos.
[in] nOutBufferSize
Tamaño asignado (en bytes) del búfer de salida.
[out, optional] lpBytesReturned
Devuelve el tamaño real (en bytes) de los datos resultantes de la operación. Si esta información no es necesaria, pase NULL para lpBytesReturned.
Valor devuelto
La función devuelve uno de los valores siguientes.
Código devuelto | Descripción |
---|---|
|
La operación se realizó correctamente. Si la operación requería un búfer de salida, lpBytesReturned (si no es NULL en la entrada) apunta al tamaño real de los datos devueltos en el búfer. |
|
El búfer de salida al que apunta lpOutBuffer no era lo suficientemente grande como para contener los datos resultantes de la operación. El parámetro lpBytesReturned (si no es NULL en la entrada) apunta al tamaño necesario para el búfer de salida. Solo las operaciones que requieren un búfer de salida devuelven ERROR_MORE_DATA. Si el parámetro lpOutBuffer es NULL y el parámetro nOutBufferSize es cero, se puede devolver ERROR_SUCCESS, no ERROR_MORE_DATA. |
La operación no se realizó correctamente. Si la operación requiere un búfer de salida, el valor especificado por lpBytesReturned (si no es NULL en la entrada) no es confiable. |
Comentarios
Si ClusterGroupControl devuelve ERROR_MORE_DATA, establezca nOutBufferSize en el número de bytes a los que apunta lpBytesReturned y vuelva a llamar a la función.
No pase los identificadores LPC y RPC a la misma llamada de función. De lo contrario, la llamada generará una excepción RPC y puede tener efectos destructivos adicionales. Para obtener información sobre cómo se crean los identificadores LPC y RPC, consulte LPC y identificadores RPC y OpenCluster.
ClusterGroupControl es una de las funciones de código de control. Para obtener más información sobre los códigos de control y las funciones de código de control, vea Usar códigos de control.
Ejemplos
En el fragmento de código siguiente se muestra una llamada 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.
}
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | No se admite ninguno |
Servidor mínimo compatible | Windows Server 2008 Enterprise, Windows Server 2008 Datacenter |
Plataforma de destino | Windows |
Encabezado | clusapi.h |
Library | ClusAPI.lib |
Archivo DLL | ClusAPI.dll |