Функция GetClusterNotify (clusapi.h)
Возвращает сведения, относящиеся к следующему событию уведомления, которое хранится для порта уведомлений. Тип PCLUSAPI_GET_CLUSTER_NOTIFY определяет указатель на эту функцию.
Синтаксис
DWORD GetClusterNotify(
[in] HCHANGE hChange,
[out] DWORD_PTR *lpdwNotifyKey,
[out] LPDWORD lpdwFilterType,
[out] LPWSTR lpszName,
[in, out] LPDWORD lpcchName,
[in, optional] DWORD dwMilliseconds
);
Параметры
[in] hChange
Дескриптор порта уведомления, созданного с помощью функции CreateClusterNotifyPort .
[out] lpdwNotifyKey
Указатель на ключ уведомления для порта, определяемого параметром hChange .
[out] lpdwFilterType
Указатель на флаг, указывающий тип возвращаемого события. Этот флаг является одним из следующих значений перечисления CLUSTER_CHANGE .
CLUSTER_CHANGE_CLUSTER_PROPERTY (0x40000000)
Очередь получает уведомление при изменении приоритетного списка внутренних сетей кластера.
CLUSTER_CHANGE_CLUSTER_RECONNECT (0x00080000)
Очередь получает уведомление, когда подключение к кластеру идентифицируется
Параметр hCluster будет восстановлен после краткого отключения. Некоторые события, созданные непосредственно до или после этого события, могут быть потеряны. Чтобы получить точные сведения о состоянии, необходимо закрыть все открытые подключения и повторно подключиться.
CLUSTER_CHANGE_CLUSTER_STATE (0x20000000)
Очередь получает уведомление, когда кластер становится недоступным, что означает, что все попытки взаимодействия с кластером завершаются сбоем.
CLUSTER_CHANGE_GROUP_ADDED (0x00004000)
Очередь получает уведомление при создании новой группы в кластере.
CLUSTER_CHANGE_GROUP_DELETED (0x00002000)
Очередь получает уведомление при удалении существующей группы.
CLUSTER_CHANGE_GROUP_PROPERTY (0x00008000)
Очередь получает уведомление при изменении свойств группы или при добавлении или удалении ресурса из группы.
CLUSTER_CHANGE_GROUP_STATE (0x00001000)
Очередь получает уведомление при изменении состояния группы. Список возможных значений состояния группы см. в разделе GetClusterGroupState.
CLUSTER_CHANGE_HANDLE_CLOSE (0x80000000)
Очередь получает уведомление при закрытии дескриптора, связанного с объектом кластера .
CLUSTER_CHANGE_NETINTERFACE_ADDED (0x04000000)
Очередь получает уведомление при добавлении нового сетевого интерфейса в узел кластера.
CLUSTER_CHANGE_NETINTERFACE_DELETED (0x02000000)
Очередь получает уведомление при окончательном удалении сетевого интерфейса из узла кластера.
CLUSTER_CHANGE_NETINTERFACE_PROPERTY (0x08000000)
Очередь получает уведомление при изменении свойств существующего сетевого интерфейса.
CLUSTER_CHANGE_NETINTERFACE_STATE (0x01000000)
Очередь получает уведомление при изменении состояния сетевого интерфейса. Список возможных значений состояния сетевого интерфейса см. в разделе GetClusterNetInterfaceState.
CLUSTER_CHANGE_NETWORK_ADDED (0x00400000)
Очередь получает уведомление при добавлении новой сети в среду кластера.
CLUSTER_CHANGE_NETWORK_DELETED (0x00200000)
Очередь получает уведомление при окончательном удалении сети из среды кластера.
CLUSTER_CHANGE_NETWORK_PROPERTY (0x00800000)
Очередь получает уведомление при изменении свойств существующей сети.
CLUSTER_CHANGE_NETWORK_STATE (0x00100000)
Очередь получает уведомление при изменении состояния сети. Список возможных значений состояния сети см. в разделе GetClusterNetworkState.
CLUSTER_CHANGE_NODE_ADDED (0x00000004)
Очередь получает уведомление при добавлении нового узла в кластер. Узел можно добавить, только если служба кластеров изначально установлена на узле.
CLUSTER_CHANGE_NODE_DELETED (0x00000002)
Очередь получает уведомление при окончательном удалении узла из кластера. Узел можно окончательно удалить из существующего кластера с помощью вызова функции EvictClusterNode .
CLUSTER_CHANGE_NODE_PROPERTY (0x00000008)
Это уведомление зарезервировано для использования в будущем.
CLUSTER_CHANGE_NODE_STATE (0x00000001)
Очередь получает уведомление при изменении состояния узла. Список возможных значений состояния узла см. в разделе GetClusterNodeState.
CLUSTER_CHANGE_QUORUM_STATE (0x10000000)
Это уведомление зарезервировано для использования в будущем.
CLUSTER_CHANGE_REGISTRY_ATTRIBUTES (0x00000020)
Очередь получает уведомление при изменении атрибутов ключа базы данных кластера . Единственный определенный в настоящее время атрибут ключа базы данных кластера — это его дескриптор безопасности, который можно изменить с помощью ClusterRegSetKeySecurity.
CLUSTER_CHANGE_REGISTRY_NAME (0x00000010)
Очередь получает уведомление об изменении имени ключа базы данных кластера.
CLUSTER_CHANGE_REGISTRY_SUBTREE (0x00000080)
Указывает, что другие события CLUSTER_CHANGE_REGISTRY применяются ко всей базе данных кластера. Если этот флаг не включен, события применяются только к указанному ключу.
CLUSTER_CHANGE_REGISTRY_VALUE (0x00000040)
Очередь получает уведомление при изменении или удалении значения указанного ключа базы данных кластера. Значения базы данных кластера можно изменить с помощью функции ClusterRegSetValue и удалить с помощью функции ClusterRegDeleteValue .
CLUSTER_CHANGE_RESOURCE_ADDED (0x00000400)
Очередь получает уведомление при создании нового ресурса в кластере.
CLUSTER_CHANGE_RESOURCE_DELETED (0x00000200)
Очередь получает уведомление при удалении ресурса.
CLUSTER_CHANGE_RESOURCE_PROPERTY (0x00000800)
Очередь получает уведомление при изменении свойств, зависимостей или возможных узлов-владельцев ресурса.
CLUSTER_CHANGE_RESOURCE_STATE (0x00000100)
Очередь получает уведомление при изменении состояния ресурса. Список возможных значений состояния ресурса см. в разделе GetClusterResourceState.
CLUSTER_CHANGE_RESOURCE_TYPE_ADDED (0x00020000)
Очередь получает уведомление при создании нового типа ресурса в кластере.
CLUSTER_CHANGE_RESOURCE_TYPE_DELETED (0x00010000)
Очередь получает уведомление при удалении существующего типа ресурса.
CLUSTER_CHANGE_RESOURCE_TYPE_PROPERTY (0x00040000)
Очередь получает уведомление при изменении свойств типа ресурса.
[out] lpszName
Указатель на строку Юникода, завершающуюся значением NULL, которая содержит имя объекта кластера , который активировал событие. В следующем списке описывается содержимое lpszName по типу события. Обратите внимание, что CLUSTER_CHANGE_REGISTRY_SUBTREE не включается в таблицу; Этот тип события никогда не обрабатывается GetClusterNotify.
CLUSTER_CHANGE_CLUSTER_PROPERTY (0x40000000)
Имя измененного кластера.
CLUSTER_CHANGE_CLUSTER_RECONNECT (0x00080000)
Имя отключенного кластера.
CLUSTER_CHANGE_CLUSTER_STATE (0x20000000)
Имя измененного кластера.
CLUSTER_CHANGE_GROUP_ADDED (0x00004000)
Новое имя группы .
CLUSTER_CHANGE_GROUP_DELETED (0x00002000)
Имя группы удалено.
CLUSTER_CHANGE_GROUP_PROPERTY (0x00008000)
Имя измененной группы.
CLUSTER_CHANGE_GROUP_STATE (0x00001000)
Имя измененной группы.
CLUSTER_CHANGE_HANDLE_CLOSE (0x80000000)
Имя закрываемого объекта.
CLUSTER_CHANGE_NODE_ADDED (0x00000004)
Имя нового узла.
CLUSTER_CHANGE_NODE_DELETED (0x00000002)
Имя удаленного узла.
CLUSTER_CHANGE_NODE_PROPERTY (0x00000008)
Имя измененного узла.
CLUSTER_CHANGE_NODE_STATE (0x00000001)
Имя измененного узла.
CLUSTER_CHANGE_REGISTRY_ATTRIBUTES (0x00000020)
Относительное имя измененного ключа базы данных кластера .
CLUSTER_CHANGE_REGISTRY_NAME (0x00000010)
Относительное имя измененного ключа базы данных кластера.
CLUSTER_CHANGE_REGISTRY_VALUE (0x00000040)
Относительное имя измененного ключа базы данных кластера.
CLUSTER_CHANGE_RESOURCE_ADDED (0x00000400)
Имя нового ресурса .
CLUSTER_CHANGE_RESOURCE_DELETED (0x00000200)
Имя удаленного ресурса.
CLUSTER_CHANGE_RESOURCE_PROPERTY (0x00000800)
Имя измененного ресурса.
CLUSTER_CHANGE_RESOURCE_STATE (0x00000100)
Имя измененного ресурса.
CLUSTER_CHANGE_RESOURCE_TYPE_ADDED (0x00020000)
Имя нового типа ресурса.
CLUSTER_CHANGE_RESOURCE_TYPE_DELETED (0x00010000)
Имя типа удаленного ресурса.
[in, out] lpcchName
Указатель на размер буфера lpszName в виде количества символов. На входных данных укажите максимальное количество символов, которое может содержать буфер, включая завершающее значение NULL. В выходных данных указывает количество символов в итоговом имени, за исключением завершающего значения NULL.
[in, optional] dwMilliseconds
Необязательное значение времени ожидания, указывающее, как долго вызывающий объект готов ждать уведомления.
Возвращаемое значение
Если операция выполнена успешно, функция возвращает ERROR_SUCCESS.
Если операция завершается сбоем, функция возвращает код системной ошибки. Ниже приведены возможные значения.
Возвращаемый код/значение | Описание |
---|---|
|
Дескриптор, представленный в параметре hChange , недопустим или закрыт другим потоком. |
|
Истекло время ожидания звонка, прежде чем уведомление может быть успешно возвращено. |
|
Буфер, на который указывает параметр lpszName , недостаточно велик для хранения результата. Параметр lpcchName возвращает количество символов в результате, за исключением завершающего значения NULL. |
Комментарии
Обратите внимание, что параметр lpcchName относится к количеству символов, а не к числу байтов, а возвращаемый размер не включает завершающее значение NULL в счетчике. Дополнительные сведения о размерах буферов см. в разделе Соглашения о размерах данных.
Уведомления являются асинхронными, и состояние кластера во время обработки уведомления приложением может отличаться от состояния кластера на момент создания уведомления.
Примеры
Требования
Минимальная версия клиента | Ни одна версия не поддерживается |
Минимальная версия сервера | Windows Server 2008 Корпоративная, Windows Server 2008 Datacenter |
Целевая платформа | Windows |
Header | clusapi.h |
Библиотека | ClusAPI.lib |
DLL | ClusAPI.dll |