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


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

Создает или изменяет порт уведомлений. Сведения о портах уведомлений см. в разделе Получение событий кластера. Тип PCLUSAPI_CREATE_CLUSTER_NOTIFY_PORT определяет указатель на эту функцию.

Синтаксис

HCHANGE CreateClusterNotifyPort(
  [in] HCHANGE   hChange,
  [in] HCLUSTER  hCluster,
  [in] DWORD     dwFilter,
  [in] DWORD_PTR dwNotifyKey
);

Параметры

[in] hChange

Дескриптор в порт уведомления или INVALID_HANDLE_VALUE, указывающий, что необходимо создать новый дескриптор. Если hChange является существующим дескриптором, события, указанные в dwFilter , добавляются в порт уведомлений.

[in] hCluster

Дескриптор кластера , связанный с портом уведомлений, определенным методом hChange, или INVALID_HANDLE_VALUE, указывая, что порт уведомлений не должен быть связан с кластером. Если для hChange не задано значение INVALID_HANDLE_VALUE, параметру hCluster нельзя задать значение INVALID_HANDLE_VALUE.

[in] dwFilter

Битовая маска флагов, перечисляемых из перечисления CLUSTER_CHANGE , указывающая события, которые приведут к хранению уведомлений в очереди. Один или несколько следующих флагов можно задать с помощью оператора OR или указать все флаги с помощью значения CLUSTER_CHANGE_ALL.

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)

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

[in] dwNotifyKey

Указанное пользователем значение, связанное с получением уведомлений из порта уведомлений. DwNotifyKey возвращается из GetClusterNotify при возникновении события одного из типов, указанных в dwFilter.

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

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

Если операция завершается сбоем, функция возвращает значение NULL. Для получения дополнительных сведений об ошибке вызовите Метод GetLastError.

Комментарии

Дополнительные сведения об использовании функций CreateClusterNotifyPort, GetClusterNotify и RegisterClusterNotify см. в разделе Получение событий кластера.

Примеры

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

Требования

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

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

CLUSTER_CHANGE

CloseClusterNotifyPort

Функции управления кластером

GetClusterGroupState

GetClusterNetInterfaceState

GetClusterNetworkState

GetClusterNodeState

GetClusterNotify

GetClusterResourceState

RegisterClusterNotify