Функция ClusterGroupControl (clusapi.h)
Инициирует операцию, влияющую на группу. Выполняемая операция зависит от кода элемента управления , переданного параметру dwControlCode .
Синтаксис
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
);
Параметры
[in] hGroup
Дескриптор для затронутой группы.
[in, optional] hHostNode
Если значение не равно NULL, обратитесь к узлу, чтобы выполнить операцию, представленную кодом элемента управления. Если значение РАВНО NULL, операция выполняется узлом , которому принадлежит группа. Указание hHostNode является необязательным.
[in] dwControlCode
Код элемента управления группы, указывающий операцию, которую необходимо выполнить. Синтаксис, связанный с кодом элемента управления, см. в разделе
Архитектура кода управления и следующие разделы:
- 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
Указатель на входной буфер, содержащий сведения, необходимые для операции, или значение NULL , если информация не требуется.
[in] nInBufferSize
Выделенный размер (в байтах) входного буфера.
[out, optional] lpOutBuffer
Указатель на выходной буфер для получения данных, полученных в результате операции, или значение NULL , если данные не будут возвращены.
[in] nOutBufferSize
Выделенный размер (в байтах) выходного буфера.
[out, optional] lpBytesReturned
Возвращает фактический размер (в байтах) данных, полученных в результате операции. Если эти сведения не требуются, передайте значение NULL для lpBytesReturned.
Возвращаемое значение
Функция возвращает одно из следующих значений.
Код возврата | Описание |
---|---|
|
Операция выполнена успешно. Если операция требовала выходного буфера, lpBytesReturned (если не ЗНАЧЕНИЕ NULL для входных данных) указывает на фактический размер данных, возвращаемых в буфере. |
|
Выходной буфер, на который указывает lpOutBuffer , не был достаточно велик для хранения данных, полученных в результате операции. Параметр lpBytesReturned (если не NULL для входных данных) указывает на размер, необходимый для выходного буфера. Только операции, для которых требуется выходной буфер, возвращают ERROR_MORE_DATA. Если параметр lpOutBuffer имеет значение NULL , а параметр nOutBufferSize равен нулю, можно вернуть ERROR_SUCCESS , а не ERROR_MORE_DATA. |
Операция не была успешной. Если для операции требуется выходной буфер, значение, заданное параметром lpBytesReturned (если для входных данных не задано значение NULL ), является ненадежным. |
Комментарии
Если ClusterGroupControl возвращает ERROR_MORE_DATA, задайте для nOutBufferSize число байтов, на которые указывает lpBytesReturned , и вызовите функцию еще раз.
Не передайте маркеры LPC и RPC в один вызов функции. В противном случае вызов вызовет исключение RPC и может иметь дополнительные разрушительные последствия. Сведения о создании дескрипторов LPC и RPC см. в разделах LPC и RPC Handles и OpenCluster.
ClusterGroupControl — это одна из функций кода элемента управления. Дополнительные сведения о кодах элементов управления и функциях кода элементов управления см. в разделе Использование кодов элементов управления.
Примеры
В следующем фрагменте кода демонстрируется вызов 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.
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Ни одна версия не поддерживается |
Минимальная версия сервера | Windows Server 2008 Корпоративная, Windows Server 2008 Datacenter |
Целевая платформа | Windows |
Header | clusapi.h |
Библиотека | ClusAPI.lib |
DLL | ClusAPI.dll |