GetClusterNotify, fonction (clusapi.h)
Retourne des informations relatives à l’événement de notification suivant stocké pour un port de notification. Le type PCLUSAPI_GET_CLUSTER_NOTIFY définit un pointeur vers cette fonction.
Syntaxe
DWORD GetClusterNotify(
[in] HCHANGE hChange,
[out] DWORD_PTR *lpdwNotifyKey,
[out] LPDWORD lpdwFilterType,
[out] LPWSTR lpszName,
[in, out] LPDWORD lpcchName,
[in, optional] DWORD dwMilliseconds
);
Paramètres
[in] hChange
Handle vers un port de notification créé avec la fonction CreateClusterNotifyPort .
[out] lpdwNotifyKey
Pointeur vers la clé de notification pour le port identifié par le paramètre hChange .
[out] lpdwFilterType
Pointeur vers un indicateur qui indique le type d’événement retourné. Cet indicateur est l’une des valeurs suivantes de l’énumération CLUSTER_CHANGE .
CLUSTER_CHANGE_CLUSTER_PROPERTY (0x40000000)
La file d’attente reçoit une notification lorsque la liste prioritaire des réseaux internes du cluster change.
CLUSTER_CHANGE_CLUSTER_RECONNECT (0x00080000)
La file d’attente reçoit une notification lorsque la connexion au cluster identifiée par le
Le paramètre hCluster est rétabli après une brève déconnexion. Certains événements générés immédiatement avant ou après cet événement peuvent avoir été perdus. Vous devez fermer toutes les connexions ouvertes et vous reconnecter pour recevoir des informations d’état précises.
CLUSTER_CHANGE_CLUSTER_STATE (0x20000000)
La file d’attente reçoit une notification lorsque le cluster devient indisponible, ce qui signifie que toutes les tentatives de communication avec le cluster échouent.
CLUSTER_CHANGE_GROUP_ADDED (0x00004000)
La file d’attente reçoit une notification lorsqu’un groupe est créé dans le cluster.
CLUSTER_CHANGE_GROUP_DELETED (0x00002000)
La file d’attente reçoit une notification lorsqu’un groupe existant est supprimé.
CLUSTER_CHANGE_GROUP_PROPERTY (0x00008000)
La file d’attente reçoit une notification lorsque les propriétés d’un groupe changent ou lorsqu’une ressource est ajoutée ou supprimée d’un groupe.
CLUSTER_CHANGE_GROUP_STATE (0x00001000)
La file d’attente reçoit une notification lorsqu’un groupe change d’état. Pour obtenir la liste des valeurs d’état de groupe possibles, consultez GetClusterGroupState.
CLUSTER_CHANGE_HANDLE_CLOSE (0x80000000)
La file d’attente reçoit une notification lorsqu’un handle associé à un objet de cluster est fermé.
CLUSTER_CHANGE_NETINTERFACE_ADDED (0x04000000)
La file d’attente reçoit une notification lorsqu’une nouvelle interface réseau est ajoutée à un nœud de cluster.
CLUSTER_CHANGE_NETINTERFACE_DELETED (0x02000000)
La file d’attente reçoit une notification lorsqu’une interface réseau est supprimée définitivement d’un nœud de cluster.
CLUSTER_CHANGE_NETINTERFACE_PROPERTY (0x08000000)
La file d’attente reçoit une notification lorsque les propriétés d’une interface réseau existante changent.
CLUSTER_CHANGE_NETINTERFACE_STATE (0x01000000)
La file d’attente reçoit une notification lorsqu’une interface réseau change d’état. Pour obtenir la liste des valeurs d’état d’interface réseau possibles, consultez GetClusterNetInterfaceState.
CLUSTER_CHANGE_NETWORK_ADDED (0x00400000)
La file d’attente reçoit une notification lorsqu’un nouveau réseau est ajouté à l’environnement de cluster.
CLUSTER_CHANGE_NETWORK_DELETED (0x00200000)
La file d’attente reçoit une notification lorsqu’un réseau est définitivement supprimé de l’environnement de cluster.
CLUSTER_CHANGE_NETWORK_PROPERTY (0x00800000)
La file d’attente reçoit une notification lorsque les propriétés d’un réseau existant changent.
CLUSTER_CHANGE_NETWORK_STATE (0x00100000)
La file d’attente reçoit une notification lorsqu’un réseau change d’état. Pour obtenir la liste des valeurs d’état réseau possibles, consultez GetClusterNetworkState.
CLUSTER_CHANGE_NODE_ADDED (0x00000004)
La file d’attente reçoit une notification lorsqu’un nouveau nœud est ajouté au cluster. Un nœud ne peut être ajouté que lorsque le service de cluster est initialement installé sur le nœud.
CLUSTER_CHANGE_NODE_DELETED (0x00000002)
La file d’attente reçoit une notification lorsqu’un nœud est supprimé définitivement d’un cluster. Un nœud peut être supprimé définitivement d’un cluster existant avec un appel à la fonction EvictClusterNode .
CLUSTER_CHANGE_NODE_PROPERTY (0x00000008)
Cette notification est réservée à une utilisation ultérieure.
CLUSTER_CHANGE_NODE_STATE (0x00000001)
La file d’attente reçoit une notification lorsqu’un nœud change d’état. Pour obtenir la liste des valeurs d’état de nœud possibles, consultez GetClusterNodeState.
CLUSTER_CHANGE_QUORUM_STATE (0x10000000)
Cette notification est réservée à une utilisation ultérieure.
CLUSTER_CHANGE_REGISTRY_ATTRIBUTES (0x00000020)
La file d’attente reçoit une notification lorsque les attributs d’une clé de base de données de cluster sont modifiés. Le seul attribut de clé de base de données de cluster actuellement défini est son descripteur de sécurité, qui peut être modifié avec ClusterRegSetKeySecurity.
CLUSTER_CHANGE_REGISTRY_NAME (0x00000010)
La file d’attente reçoit une notification lorsque le nom d’une clé de base de données de cluster a changé.
CLUSTER_CHANGE_REGISTRY_SUBTREE (0x00000080)
Indique que les autres événements CLUSTER_CHANGE_REGISTRY s’appliquent à la base de données de cluster entière. Si cet indicateur n’est pas inclus, les événements s’appliquent uniquement à la clé spécifiée.
CLUSTER_CHANGE_REGISTRY_VALUE (0x00000040)
La file d’attente reçoit une notification lorsqu’une valeur de la clé de base de données de cluster spécifiée est modifiée ou supprimée. Les valeurs de la base de données de cluster peuvent être modifiées avec la fonction ClusterRegSetValue et supprimées avec la fonction ClusterRegDeleteValue .
CLUSTER_CHANGE_RESOURCE_ADDED (0x00000400)
La file d’attente reçoit une notification lorsqu’une ressource est créée dans le cluster.
CLUSTER_CHANGE_RESOURCE_DELETED (0x00000200)
La file d’attente reçoit une notification lorsqu’une ressource est supprimée.
CLUSTER_CHANGE_RESOURCE_PROPERTY (0x00000800)
La file d’attente reçoit une notification lorsque les propriétés, les dépendances ou les nœuds propriétaires possibles d’une ressource changent.
CLUSTER_CHANGE_RESOURCE_STATE (0x00000100)
La file d’attente reçoit une notification lorsqu’une ressource change d’état. Pour obtenir la liste des valeurs d’état des ressources possibles, consultez GetClusterResourceState.
CLUSTER_CHANGE_RESOURCE_TYPE_ADDED (0x00020000)
La file d’attente reçoit une notification lorsqu’un nouveau type de ressource est créé dans le cluster.
CLUSTER_CHANGE_RESOURCE_TYPE_DELETED (0x00010000)
La file d’attente reçoit une notification lorsqu’un type de ressource existant est supprimé.
CLUSTER_CHANGE_RESOURCE_TYPE_PROPERTY (0x00040000)
La file d’attente reçoit une notification lorsque les propriétés d’un type de ressource changent.
[out] lpszName
Pointeur vers une chaîne Unicode terminée par un caractère Null contenant le nom de l’objet de cluster qui a déclenché l’événement. La liste suivante décrit le contenu de lpszName par type d’événement. Notez que CLUSTER_CHANGE_REGISTRY_SUBTREE n’est pas inclus dans le tableau ; ce type d’événement n’est jamais géré par GetClusterNotify.
CLUSTER_CHANGE_CLUSTER_PROPERTY (0x40000000)
Nom du cluster modifié.
CLUSTER_CHANGE_CLUSTER_RECONNECT (0x00080000)
Nom du cluster déconnecté.
CLUSTER_CHANGE_CLUSTER_STATE (0x20000000)
Nom du cluster modifié.
CLUSTER_CHANGE_GROUP_ADDED (0x00004000)
Nouveau nom de groupe .
CLUSTER_CHANGE_GROUP_DELETED (0x00002000)
Nom du groupe supprimé.
CLUSTER_CHANGE_GROUP_PROPERTY (0x00008000)
Nom du groupe modifié.
CLUSTER_CHANGE_GROUP_STATE (0x00001000)
Nom du groupe modifié.
CLUSTER_CHANGE_HANDLE_CLOSE (0x80000000)
Nom de l’objet en cours de fermeture.
CLUSTER_CHANGE_NODE_ADDED (0x00000004)
Nom du nouveau nœud.
CLUSTER_CHANGE_NODE_DELETED (0x00000002)
Nom du nœud supprimé.
CLUSTER_CHANGE_NODE_PROPERTY (0x00000008)
Nom du nœud modifié.
CLUSTER_CHANGE_NODE_STATE (0x00000001)
Nom du nœud modifié.
CLUSTER_CHANGE_REGISTRY_ATTRIBUTES (0x00000020)
Nom relatif de la clé de base de données de cluster modifiée.
CLUSTER_CHANGE_REGISTRY_NAME (0x00000010)
Nom relatif de la clé de base de données de cluster modifiée.
CLUSTER_CHANGE_REGISTRY_VALUE (0x00000040)
Nom relatif de la clé de base de données de cluster modifiée.
CLUSTER_CHANGE_RESOURCE_ADDED (0x00000400)
Nouveau nom de ressource .
CLUSTER_CHANGE_RESOURCE_DELETED (0x00000200)
Nom de la ressource supprimée.
CLUSTER_CHANGE_RESOURCE_PROPERTY (0x00000800)
Nom de la ressource modifiée.
CLUSTER_CHANGE_RESOURCE_STATE (0x00000100)
Nom de la ressource modifiée.
CLUSTER_CHANGE_RESOURCE_TYPE_ADDED (0x00020000)
Nom du nouveau type de ressource.
CLUSTER_CHANGE_RESOURCE_TYPE_DELETED (0x00010000)
Nom du type de ressource supprimé.
[in, out] lpcchName
Pointeur vers la taille de la mémoire tampon lpszName en tant que nombre de caractères. Lors de l’entrée, spécifiez le nombre maximal de caractères que la mémoire tampon peut contenir, y compris la valeur NULL de fin. Sur la sortie, spécifie le nombre de caractères dans le nom résultant, à l’exclusion de la valeur NULL de fin.
[in, optional] dwMilliseconds
Valeur de délai d’attente facultative qui spécifie la durée pendant laquelle l’appelant est prêt à attendre la notification.
Valeur retournée
Si l’opération réussit, la fonction retourne ERROR_SUCCESS.
Si l’opération échoue, la fonction retourne un code d’erreur système. Voici les valeurs possibles.
Code/valeur de retour | Description |
---|---|
|
Le handle représenté dans le paramètre hChange n’est pas valide ou a été fermé par un autre thread. |
|
L’appel a expiré avant que la notification puisse être retournée. |
|
La mémoire tampon pointée vers le paramètre lpszName n’est pas assez grande pour contenir le résultat. Le paramètre lpcchName retourne le nombre de caractères dans le résultat, à l’exclusion de la valeur NULL de fin. |
Notes
Notez que le paramètre lpcchName fait référence à un nombre de caractères et non à un nombre d’octets, et que la taille retournée n’inclut pas la valeur NULL de fin dans le nombre. Pour plus d’informations sur le dimensionnement des mémoires tampons, consultez Conventions de taille des données.
Les notifications sont asynchrones et l’état du cluster au moment où l’application traite la notification peut être différent de celui du cluster au moment où la notification a été générée.
Exemples
Consultez l’exemple de port de notification.
Configuration requise
Client minimal pris en charge | Aucun pris en charge |
Serveur minimal pris en charge | Windows Server 2008 Entreprise, Windows Server 2008 Datacenter |
Plateforme cible | Windows |
En-tête | clusapi.h |
Bibliothèque | ClusAPI.lib |
DLL | ClusAPI.dll |