Поделиться через


Функция ClusterEnum (clusapi.h)

Перечисляет объекты кластера в кластере, возвращая имя одного объекта при каждом вызове. Тип PCLUSAPI_CLUSTER_ENUM определяет указатель на эту функцию.

Синтаксис

DWORD ClusterEnum(
  [in]      HCLUSENUM hEnum,
  [in]      DWORD     dwIndex,
  [out]     LPDWORD   lpdwType,
  [out]     LPWSTR    lpszName,
  [in, out] LPDWORD   lpcchName
);

Параметры

[in] hEnum

Дескриптор перечисления кластера, возвращаемый функцией ClusterOpenEnum .

[in] dwIndex

Индекс, используемый для идентификации следующей записи для перечисления. Этот параметр должен быть равен нулю для первого вызова ClusterEnum , а затем увеличиваться для последующих вызовов.

[out] lpdwType

Указатель на тип возвращаемого объекта. При каждом вызове возвращается одно из следующих значений перечисления CLUSTER_ENUM .

CLUSTER_ENUM_NODE (1 (0x1))

Перечисляет узлы в кластере.

CLUSTER_ENUM_RESTYPE (2 (0x2))

Перечисляет типы ресурсов в кластере.

CLUSTER_ENUM_RESOURCE (4 (0x4))

Перечисляет ресурсы в кластере.

CLUSTER_ENUM_GROUP (8 (0x8))

Перечисляет группы в кластере.

CLUSTER_ENUM_NETWORK (16 (0x10))

Перечисляет сети в кластере.

CLUSTER_ENUM_NETINTERFACE (32 (0x20))

Перечисляет сетевые интерфейсы в кластере.

CLUSTER_ENUM_SHARED_VOLUME_RESOURCE (1073741824 (0x40000000))

Перечисляет общие тома кластера, используемые кластером.

Примечание В отличие от большинства других битов перечисления, это значение необходимо использовать отдельно. Не используйте оператор OR для его объединения с другими битами.
 
Windows Server 2008: Значение CLUSTER_ENUM_SHARED_VOLUME_RESOURCE не поддерживается до Windows Server 2008 R2.

CLUSTER_ENUM_INTERNAL_NETWORK (2147483648 (0x80000000))

Перечисляет сети, используемые кластером для внутреннего взаимодействия. Сети перечисляются в порядке с наивысшим приоритетом, установленным функцией SetClusterNetworkPriorityOrder .

Примечание В отличие от большинства других битов перечисления, это значение необходимо использовать отдельно. Не используйте оператор OR для его объединения с другими битами.
 

CLUSTER_ENUM_ALL ((CLUSTER_ENUM_NODE | CLUSTER_ENUM_RESTYPE | CLUSTER_ENUM_RESOURCE | CLUSTER_ENUM_GROUP | CLUSTER_ENUM_NETWORK | CLUSTER_ENUM_NETINTERFACE))

Перечисляет все объекты кластера.

[out] lpszName

Указатель на строку Юникода, завершающуюся null, которая содержит имя возвращаемого объекта.

[in, out] lpcchName

Указатель на размер буфера lpszName в виде количества символов. На входных данных укажите максимальное количество символов, которые может содержать буфер, включая завершающее значение NULL. В выходных данных указывает количество символов в итоговом имени, за исключением завершающего значения NULL.

Возвращаемое значение

Функция возвращает одно из следующих значений.

Возвращаемый код/значение Описание
ERROR_SUCCESS
0
Операция выполнена успешно.
ERROR_NO_MORE_ITEMS
259 (0x103)
Больше нет доступных данных. Это значение возвращается, если объектов запрошенного типа больше нет.
ERROR_MORE_DATA
234 (0xEA)
More data is available. Это значение возвращается, если буфер, на который указывает lpszName , недостаточно велик для хранения результата. Параметр lpcchName возвращает количество символов в результате, за исключением завершающего значения NULL.

Комментарии

Функция ClusterEnum обычно используется для итерации коллекции объектов кластера одного или нескольких типов. Например, если приложение хочет перечислить все узлы в кластере, оно вызывает ClusterOpenEnum , чтобы открыть перечислитель кластера, который может обрабатывать узлы. Параметру dwType присвоено значение CLUSTER_ENUM_NODE, чтобы указать узлы в качестве типа объекта для перечисления. Если приложение перечисляет группы в дополнение к узлам, параметру dwType присваивается значение CLUSTER_ENUM_NODE | CLUSTER_ENUM_GROUP. Используя дескриптор, который возвращает ClusterOpenEnum , приложение вызывает ClusterEnum несколько раз, чтобы получить каждый из объектов . Параметр lpdwType указывает на тип извлекаемого объекта.

Обратите внимание, что lpcchName относится к количеству символов, а не к числу байтов, и что возвращаемый размер не включает завершающее значение NULL в счетчике. Дополнительные сведения о размерах буферов см. в разделе Соглашения о размерах данных.

Примеры

См. раздел Перечисление объектов.

Требования

   
Минимальная версия клиента Ни одна версия не поддерживается
Минимальная версия сервера Windows Server 2008 Корпоративная, Windows Server 2008 Datacenter
Целевая платформа Windows
Header clusapi.h
Библиотека ClusAPI.lib
DLL ClusAPI.dll

См. также раздел

ClusterCloseEnum

ClusterOpenUm

SetClusterNetworkPriorityOrder