GetClusterNotify-Funktion (clusapi.h)
Gibt Informationen zum nächsten Benachrichtigungsereignis zurück, das für einen Benachrichtigungsport gespeichert wird. Der PCLUSAPI_GET_CLUSTER_NOTIFY Typ definiert einen Zeiger auf diese Funktion.
Syntax
DWORD GetClusterNotify(
[in] HCHANGE hChange,
[out] DWORD_PTR *lpdwNotifyKey,
[out] LPDWORD lpdwFilterType,
[out] LPWSTR lpszName,
[in, out] LPDWORD lpcchName,
[in, optional] DWORD dwMilliseconds
);
Parameter
[in] hChange
Das Handle für einen Benachrichtigungsport, der mit der CreateClusterNotifyPort-Funktion erstellt wird.
[out] lpdwNotifyKey
Ein Zeiger auf den Benachrichtigungsschlüssel für den Port, der durch den hChange-Parameter identifiziert wird.
[out] lpdwFilterType
Ein Zeiger auf ein Flag, das den Typ des zurückgegebenen Ereignisses angibt. Dieses Flag ist einer der folgenden Werte aus der CLUSTER_CHANGE-Enumeration .
CLUSTER_CHANGE_CLUSTER_PROPERTY (0x40000000)
Die Warteschlange erhält eine Benachrichtigung, wenn sich die priorisierte Liste der internen Netzwerke des Clusters ändert.
CLUSTER_CHANGE_CLUSTER_RECONNECT (0x00080000)
Die Warteschlange empfängt eine Benachrichtigung, wenn die Verbindung mit dem Cluster, der durch die
Der hCluster-Parameter wird nach einer kurzen Trennung wiederhergestellt. Einige Ereignisse, die unmittelbar vor oder nach diesem Ereignis generiert wurden, sind möglicherweise verloren gegangen. Sie müssen alle offenen Verbindungen schließen und erneut eine Verbindung herstellen, um genaue Zustandsinformationen zu erhalten.
CLUSTER_CHANGE_CLUSTER_STATE (0x20000000)
Die Warteschlange erhält eine Benachrichtigung, wenn der Cluster nicht mehr verfügbar ist, was bedeutet, dass alle Versuche, mit dem Cluster zu kommunizieren, fehlschlagen.
CLUSTER_CHANGE_GROUP_ADDED (0x00004000)
Die Warteschlange erhält eine Benachrichtigung, wenn eine neue Gruppe im Cluster erstellt wird.
CLUSTER_CHANGE_GROUP_DELETED (0x00002000)
Die Warteschlange erhält eine Benachrichtigung, wenn eine vorhandene Gruppe gelöscht wird.
CLUSTER_CHANGE_GROUP_PROPERTY (0x00008000)
Die Warteschlange erhält eine Benachrichtigung, wenn sich die Eigenschaften einer Gruppe ändern oder wenn eine Ressource einer Gruppe hinzugefügt oder daraus entfernt wird.
CLUSTER_CHANGE_GROUP_STATE (0x00001000)
Die Warteschlange erhält eine Benachrichtigung, wenn sich der Status einer Gruppe ändert. Eine Liste der möglichen Gruppenstatuswerte finden Sie unter GetClusterGroupState.
CLUSTER_CHANGE_HANDLE_CLOSE (0x80000000)
Die Warteschlange erhält eine Benachrichtigung, wenn ein Handle geschlossen wird, das einem Clusterobjekt zugeordnet ist.
CLUSTER_CHANGE_NETINTERFACE_ADDED (0x04000000)
Die Warteschlange erhält eine Benachrichtigung, wenn einem Clusterknoten eine neue Netzwerkschnittstelle hinzugefügt wird.
CLUSTER_CHANGE_NETINTERFACE_DELETED (0x02000000)
Die Warteschlange erhält eine Benachrichtigung, wenn eine Netzwerkschnittstelle dauerhaft von einem Clusterknoten entfernt wird.
CLUSTER_CHANGE_NETINTERFACE_PROPERTY (0x08000000)
Die Warteschlange erhält eine Benachrichtigung, wenn sich die Eigenschaften einer vorhandenen Netzwerkschnittstelle ändern.
CLUSTER_CHANGE_NETINTERFACE_STATE (0x01000000)
Die Warteschlange erhält eine Benachrichtigung, wenn sich der Zustand einer Netzwerkschnittstelle ändert. Eine Liste der möglichen Werte für den Netzwerkschnittstellenstatus finden Sie unter GetClusterNetInterfaceState.
CLUSTER_CHANGE_NETWORK_ADDED (0x00400000)
Die Warteschlange erhält eine Benachrichtigung, wenn der Clusterumgebung ein neues Netzwerk hinzugefügt wird.
CLUSTER_CHANGE_NETWORK_DELETED (0x00200000)
Die Warteschlange erhält eine Benachrichtigung, wenn ein Netzwerk dauerhaft aus der Clusterumgebung entfernt wird.
CLUSTER_CHANGE_NETWORK_PROPERTY (0x00800000)
Die Warteschlange erhält eine Benachrichtigung, wenn sich die Eigenschaften eines vorhandenen Netzwerks ändern.
CLUSTER_CHANGE_NETWORK_STATE (0x00100000)
Die Warteschlange erhält eine Benachrichtigung, wenn sich der Zustand eines Netzwerks ändert. Eine Liste der möglichen Netzwerkstatuswerte finden Sie unter GetClusterNetworkState.
CLUSTER_CHANGE_NODE_ADDED (0x00000004)
Die Warteschlange erhält eine Benachrichtigung, wenn dem Cluster ein neuer Knoten hinzugefügt wird. Ein Knoten kann nur hinzugefügt werden, wenn der Clusterdienst anfänglich auf dem Knoten installiert ist.
CLUSTER_CHANGE_NODE_DELETED (0x00000002)
Die Warteschlange erhält eine Benachrichtigung, wenn ein Knoten dauerhaft aus einem Cluster entfernt wird. Ein Knoten kann mit einem Aufruf der EvictClusterNode-Funktion dauerhaft aus einem vorhandenen Cluster gelöscht werden.
CLUSTER_CHANGE_NODE_PROPERTY (0x00000008)
Diese Benachrichtigung ist für die zukünftige Verwendung reserviert.
CLUSTER_CHANGE_NODE_STATE (0x00000001)
Die Warteschlange erhält eine Benachrichtigung, wenn sich der Zustand eines Knotens ändert. Eine Liste der möglichen Knotenstatuswerte finden Sie unter GetClusterNodeState.
CLUSTER_CHANGE_QUORUM_STATE (0x10000000)
Diese Benachrichtigung ist für die zukünftige Verwendung reserviert.
CLUSTER_CHANGE_REGISTRY_ATTRIBUTES (0x00000020)
Die Warteschlange erhält eine Benachrichtigung, wenn die Attribute eines Clusterdatenbankschlüssels geändert werden. Das einzige derzeit definierte Clusterdatenbankschlüssel-Attribut ist dessen Sicherheitsdeskriptor, der mit ClusterRegSetKeySecurity geändert werden kann.
CLUSTER_CHANGE_REGISTRY_NAME (0x00000010)
Die Warteschlange erhält eine Benachrichtigung, wenn sich der Name eines Clusterdatenbankschlüssels geändert hat.
CLUSTER_CHANGE_REGISTRY_SUBTREE (0x00000080)
Gibt an, dass die anderen CLUSTER_CHANGE_REGISTRY Ereignisse für die gesamte Clusterdatenbank gelten. Wenn dieses Flag nicht enthalten ist, gelten die Ereignisse nur für den angegebenen Schlüssel.
CLUSTER_CHANGE_REGISTRY_VALUE (0x00000040)
Die Warteschlange erhält eine Benachrichtigung, wenn ein Wert des angegebenen Clusterdatenbankschlüssels geändert oder gelöscht wird. Clusterdatenbankwerte können mit der Funktion ClusterRegSetValue geändert und mit der Funktion ClusterRegDeleteValue gelöscht werden.
CLUSTER_CHANGE_RESOURCE_ADDED (0x00000400)
Die Warteschlange erhält eine Benachrichtigung, wenn eine neue Ressource im Cluster erstellt wird.
CLUSTER_CHANGE_RESOURCE_DELETED (0x00000200)
Die Warteschlange erhält eine Benachrichtigung, wenn eine Ressource gelöscht wird.
CLUSTER_CHANGE_RESOURCE_PROPERTY (0x00000800)
Die Warteschlange erhält eine Benachrichtigung, wenn sich die Eigenschaften, Abhängigkeiten oder mögliche Besitzerknoten einer Ressource ändern.
CLUSTER_CHANGE_RESOURCE_STATE (0x00000100)
Die Warteschlange erhält eine Benachrichtigung, wenn sich der Zustand einer Ressource ändert. Eine Liste der möglichen Ressourcenzustandswerte finden Sie unter GetClusterResourceState.
CLUSTER_CHANGE_RESOURCE_TYPE_ADDED (0x00020000)
Die Warteschlange erhält eine Benachrichtigung, wenn ein neuer Ressourcentyp im Cluster erstellt wird.
CLUSTER_CHANGE_RESOURCE_TYPE_DELETED (0x00010000)
Die Warteschlange erhält eine Benachrichtigung, wenn ein vorhandener Ressourcentyp gelöscht wird.
CLUSTER_CHANGE_RESOURCE_TYPE_PROPERTY (0x00040000)
Die Warteschlange erhält eine Benachrichtigung, wenn sich die Eigenschaften eines Ressourcentyps ändern.
[out] lpszName
Ein Zeiger auf eine unicode-Zeichenfolge mit Null-Termin, die den Namen des Clusterobjekts enthält, das das Ereignis ausgelöst hat. In der folgenden Liste wird der Inhalt von lpszName nach Ereignistyp beschrieben. Beachten Sie, dass CLUSTER_CHANGE_REGISTRY_SUBTREE nicht in der Tabelle enthalten ist. Dieser Ereignistyp wird nie von GetClusterNotify behandelt.
CLUSTER_CHANGE_CLUSTER_PROPERTY (0x40000000)
Der Name des geänderten Clusters.
CLUSTER_CHANGE_CLUSTER_RECONNECT (0x00080000)
Name des getrennten Clusters.
CLUSTER_CHANGE_CLUSTER_STATE (0x20000000)
Der Name des geänderten Clusters.
CLUSTER_CHANGE_GROUP_ADDED (0x00004000)
Neuer Gruppenname .
CLUSTER_CHANGE_GROUP_DELETED (0x00002000)
Gruppenname gelöscht.
CLUSTER_CHANGE_GROUP_PROPERTY (0x00008000)
Name der geänderten Gruppe.
CLUSTER_CHANGE_GROUP_STATE (0x00001000)
Name der geänderten Gruppe.
CLUSTER_CHANGE_HANDLE_CLOSE (0x80000000)
Name des Objekts, das geschlossen wird.
CLUSTER_CHANGE_NODE_ADDED (0x00000004)
Name des neuen Knotens.
CLUSTER_CHANGE_NODE_DELETED (0x00000002)
Name des gelöschten Knotens.
CLUSTER_CHANGE_NODE_PROPERTY (0x00000008)
Name des geänderten Knotens.
CLUSTER_CHANGE_NODE_STATE (0x00000001)
Name des geänderten Knotens.
CLUSTER_CHANGE_REGISTRY_ATTRIBUTES (0x00000020)
Relativer Name des geänderten Clusterdatenbankschlüssels .
CLUSTER_CHANGE_REGISTRY_NAME (0x00000010)
Relativer Name des geänderten Clusterdatenbankschlüssels.
CLUSTER_CHANGE_REGISTRY_VALUE (0x00000040)
Relativer Name des geänderten Clusterdatenbankschlüssels.
CLUSTER_CHANGE_RESOURCE_ADDED (0x00000400)
Neuer Ressourcenname .
CLUSTER_CHANGE_RESOURCE_DELETED (0x00000200)
Ressourcenname gelöscht.
CLUSTER_CHANGE_RESOURCE_PROPERTY (0x00000800)
Name der geänderten Ressource.
CLUSTER_CHANGE_RESOURCE_STATE (0x00000100)
Name der geänderten Ressource.
CLUSTER_CHANGE_RESOURCE_TYPE_ADDED (0x00020000)
Name des neuen Ressourcentyps.
CLUSTER_CHANGE_RESOURCE_TYPE_DELETED (0x00010000)
Name des gelöschten Ressourcentyps.
[in, out] lpcchName
Ein Zeiger auf die Größe des lpszName-Puffers als Anzahl von Zeichen. Geben Sie bei der Eingabe die maximale Anzahl von Zeichen an, die der Puffer enthalten kann, einschließlich des beendenden NULL. Gibt bei der Ausgabe die Anzahl der Zeichen im resultierenden Namen an, wobei der beendende NULL-Wert ausgeschlossen wird.
[in, optional] dwMilliseconds
Optionaler Timeoutwert, der angibt, wie lange der Aufrufer bereit ist, auf die Benachrichtigung zu warten.
Rückgabewert
Wenn der Vorgang erfolgreich ist, gibt die Funktion ERROR_SUCCESS zurück.
Wenn der Vorgang fehlschlägt, gibt die Funktion einen Systemfehlercode zurück. Im Folgenden sind mögliche Werte aufgeführt.
Rückgabecode/-wert | BESCHREIBUNG |
---|---|
|
Das Handle, das im hChange-Parameter dargestellt wird, ist ungültig oder wurde von einem anderen Thread geschlossen. |
|
Für den Anruf ist ein Timeout aufgetreten, bevor die Benachrichtigung erfolgreich zurückgegeben werden konnte. |
|
Der Puffer, auf den der parameter lpszName verweist, ist nicht groß genug, um das Ergebnis zu halten. Der Parameter lpcchName gibt die Anzahl der Zeichen im Ergebnis zurück, wobei das beendende NULL ausgeschlossen wird. |
Hinweise
Beachten Sie, dass der lpcchName-Parameter auf eine Anzahl von Zeichen und nicht auf die Anzahl von Bytes verweist, und dass die zurückgegebene Größe nicht den beendenden NULL in der Anzahl enthält. Weitere Informationen zur Größenanpassung von Puffern finden Sie unter Datengrößenkonventionen.
Die Benachrichtigungen sind asynchron, und der Status des Clusters zu dem Zeitpunkt, zu dem die Anwendung die Benachrichtigung verarbeitet, kann sich vom Status des Clusters zum Zeitpunkt der Benachrichtigungsgenerierung unterscheiden.
Beispiele
Sehen Sie sich das Beispiel für den Benachrichtigungsport an.
Anforderungen
Unterstützte Mindestversion (Client) | Nicht unterstützt |
Unterstützte Mindestversion (Server) | Windows Server 2008 Enterprise, Windows Server 2008 Datacenter |
Zielplattform | Windows |
Kopfzeile | clusapi.h |
Bibliothek | ClusAPI.lib |
DLL | ClusAPI.dll |