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


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

Добавляет тип события в список событий, хранящихся для порта уведомлений. Тип PCLUSAPI_REGISTER_CLUSTER_NOTIFY определяет указатель на эту функцию.

Синтаксис

DWORD RegisterClusterNotify(
  [in] HCHANGE   hChange,
  [in] DWORD     dwFilterType,
  [in] HANDLE    hObject,
  [in] DWORD_PTR dwNotifyKey
);

Параметры

[in] hChange

Обработка порта уведомлений, созданного с помощью функции CreateClusterNotifyPort .

[in] dwFilterType

Битовая маска флагов, описывающая событие, добавляемое в набор событий, отслеживаемых портом уведомлений. Дополнительные сведения об этих типах событий см. в разделе CreateClusterNotifyPort. Для параметра dwFilterType можно задать один из следующих флагов.

CLUSTER_CHANGE_CLUSTER_PROPERTY (0x40000000)

Очередь получает уведомление при изменении списка внутренних сетей кластера с приоритетами.

CLUSTER_CHANGE_CLUSTER_RECONNECT

Очередь получает уведомление, когда подключение к кластеру, определенному 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)

Очередь получает уведомление при изменении состояния группы.

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)

Очередь получает уведомление при изменении состояния узла.

CLUSTER_CHANGE_QUORUM_STATE (0x10000000)

Очередь получает уведомление при изменении состояния ресурса кворума .

CLUSTER_CHANGE_REGISTRY_ATTRIBUTES (0x00000020)

Очередь получает уведомление при изменении атрибутов ключа базы данных кластера .

CLUSTER_CHANGE_REGISTRY_NAME (0x00000010)

Очередь получает уведомление при изменении имени в базе данных кластера.

CLUSTER_CHANGE_REGISTRY_SUBTREE (0x00000080)

Указывает, что другие события CLUSTER_CHANGE_REGISTRY применяются к корню базы данных кластера и ко всем подразделам. Если CLUSTER_CHANGE_REGISTRY_SUBTREE не указан, уведомления применяются только к корневому каталогу.

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)

Очередь получает уведомление при удалении существующего типа ресурса.

CLUSTER_CHANGE_RESOURCE_TYPE_PROPERTY (0x00040000)

Очередь получает уведомление при изменении свойств типа ресурса.

[in] hObject

Дескриптор объекта отказоустойчивого кластера , затронутого событием, указанным в параметре dwFilterType . Тип дескриптора зависит от значения dwFilterType , как описано в следующем списке.

CLUSTER_CHANGE_CLUSTER_PROPERTY

HCLUSTER

CLUSTER_CHANGE_CLUSTER_STATE

HCLUSTER

CLUSTER_CHANGE_GROUP_DELETED

HGROUP

CLUSTER_CHANGE_GROUP_PROPERTY

HGROUP

CLUSTER_CHANGE_GROUP_STATE

HGROUP

CLUSTER_CHANGE_HANDLE_CLOSE

HCLUSTER, если флаг используется сам по себе; В противном случае дескриптор, связанный с флагом, с которым CLUSTER_CHANGE_HANDLE_CLOSE объединяется, становится типом дескриптора.

Например, если значение параметра dwFilterType равно CLUSTER_CHANGE_GROUP_PROPERTY | CLUSTER_CHANGE_HANDLE_CLOSE, то тип дескриптора для параметра hObject становится HGROUP, так как флаг CLUSTER_CHANGE_GROUP_PROPERTY связан с типом дескриптора HGROUP .

CLUSTER_CHANGE_NODE_DELETED

HNODE

CLUSTER_CHANGE_NODE_PROPERTY

HNODE

CLUSTER_CHANGE_NODE_STATE

HNODE

CLUSTER_CHANGE_REGISTRY_ATTRIBUTES

HKEY

CLUSTER_CHANGE_REGISTRY_NAME

HKEY

CLUSTER_CHANGE_REGISTRY_SUBTREE

HKEY

CLUSTER_CHANGE_REGISTRY_VALUE

HKEY

CLUSTER_CHANGE_RESOURCE_DELETED

HRESOURCE

CLUSTER_CHANGE_RESOURCE_PROPERTY

HRESOURCE

CLUSTER_CHANGE_RESOURCE_STATE

HRESOURCE

Функции кластерной базы данных возвращают допустимый ключ базы данных кластера, который можно использовать для задания hObject , если dwFilterType имеет тип события, влияющий на базу данных кластера.

[in] dwNotifyKey

Ключ уведомления возвращается из GetClusterNotify при возникновении запрошенного события.

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

Если операция выполнена успешно, функция возвращает ERROR_SUCCESS.

Если операция завершается сбоем, функция возвращает код системной ошибки.

Комментарии

Функция RegisterClusterNotify позволяет приложению , которое уже создало порт уведомлений с помощью CreateClusterNotifyPort , зарегистрироваться для получения дополнительного события, влияющего на узел, ресурс или группу.

Чтобы получать уведомления об изменениях базы данных кластера , необходимо задать один или несколько флагов, применимых к базе данных, в параметре dwFilterType . Применимые флаги начинаются с CLUSTER_CHANGE_REGISTRY префикса. Внесение изменений в базу данных кластера вручную с помощью редактора реестра RegEdit.exe не создает уведомлений.

Примеры

См. пример порта уведомлений.

Требования

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

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

CloseClusterNotifyPort

CreateClusterNotifyPort

GetClusterNotify