Funzione GetClusterNotify (clusapi.h)
Restituisce informazioni relative all'evento di notifica successivo archiviato per una porta di notifica. Il tipo PCLUSAPI_GET_CLUSTER_NOTIFY definisce un puntatore a questa funzione.
Sintassi
DWORD GetClusterNotify(
[in] HCHANGE hChange,
[out] DWORD_PTR *lpdwNotifyKey,
[out] LPDWORD lpdwFilterType,
[out] LPWSTR lpszName,
[in, out] LPDWORD lpcchName,
[in, optional] DWORD dwMilliseconds
);
Parametri
[in] hChange
Handle di una porta di notifica creata con la funzione CreateClusterNotifyPort .
[out] lpdwNotifyKey
Puntatore alla chiave di notifica per la porta identificata dal parametro hChange .
[out] lpdwFilterType
Puntatore a un flag che indica il tipo di evento restituito. Questo flag è uno dei valori seguenti dell'enumerazione CLUSTER_CHANGE .
CLUSTER_CHANGE_CLUSTER_PROPERTY (0x40000000)
La coda riceve una notifica quando cambia l'elenco di reti interne con priorità del cluster.
CLUSTER_CHANGE_CLUSTER_RECONNECT (0x00080000)
La coda riceve una notifica quando la connessione al cluster identificato da
Il parametro hCluster viene ristabilito dopo una breve disconnessione. Alcuni eventi generati immediatamente prima o dopo questo evento potrebbero essere stati persi. È necessario chiudere tutte le connessioni aperte e riconnettersi per ricevere informazioni accurate sullo stato.
CLUSTER_CHANGE_CLUSTER_STATE (0x20000000)
La coda riceve una notifica quando il cluster diventa non disponibile, ovvero tutti i tentativi di comunicazione con il cluster hanno esito negativo.
CLUSTER_CHANGE_GROUP_ADDED (0x00004000)
La coda riceve una notifica quando viene creato un nuovo gruppo nel cluster.
CLUSTER_CHANGE_GROUP_DELETED (0x00002000)
La coda riceve una notifica quando viene eliminato un gruppo esistente.
CLUSTER_CHANGE_GROUP_PROPERTY (0x00008000)
La coda riceve una notifica quando le proprietà di un gruppo cambiano o quando una risorsa viene aggiunta o rimossa da un gruppo.
CLUSTER_CHANGE_GROUP_STATE (0x00001000)
La coda riceve una notifica quando un gruppo cambia stato. Per un elenco dei possibili valori di stato del gruppo, vedere GetClusterGroupState.
CLUSTER_CHANGE_HANDLE_CLOSE (0x80000000)
La coda riceve una notifica quando un handle associato a un oggetto cluster viene chiuso.
CLUSTER_CHANGE_NETINTERFACE_ADDED (0x04000000)
La coda riceve una notifica quando viene aggiunta una nuova interfaccia di rete a un nodo del cluster.
CLUSTER_CHANGE_NETINTERFACE_DELETED (0x02000000)
La coda riceve una notifica quando un'interfaccia di rete viene rimossa definitivamente da un nodo del cluster.
CLUSTER_CHANGE_NETINTERFACE_PROPERTY (0x08000000)
La coda riceve una notifica quando cambiano le proprietà di un'interfaccia di rete esistente.
CLUSTER_CHANGE_NETINTERFACE_STATE (0x01000000)
La coda riceve una notifica quando un'interfaccia di rete cambia stato. Per un elenco dei possibili valori dello stato dell'interfaccia di rete, vedere GetClusterNetInterfaceState.
CLUSTER_CHANGE_NETWORK_ADDED (0x00400000)
La coda riceve una notifica quando viene aggiunta una nuova rete all'ambiente cluster.
CLUSTER_CHANGE_NETWORK_DELETED (0x00200000)
La coda riceve una notifica quando una rete viene rimossa definitivamente dall'ambiente cluster.
CLUSTER_CHANGE_NETWORK_PROPERTY (0x00800000)
La coda riceve una notifica quando le proprietà di una rete esistente cambiano.
CLUSTER_CHANGE_NETWORK_STATE (0x00100000)
La coda riceve una notifica quando una rete cambia stato. Per un elenco dei possibili valori dello stato di rete, vedere GetClusterNetworkState.
CLUSTER_CHANGE_NODE_ADDED (0x00000004)
La coda riceve una notifica quando viene aggiunto un nuovo nodo al cluster. Un nodo può essere aggiunto solo quando il servizio cluster è inizialmente installato nel nodo.
CLUSTER_CHANGE_NODE_DELETED (0x00000002)
La coda riceve una notifica quando un nodo viene rimosso definitivamente da un cluster. Un nodo può essere eliminato definitivamente da un cluster esistente con una chiamata alla funzione EvictClusterNode .
CLUSTER_CHANGE_NODE_PROPERTY (0x00000008)
Questa notifica è riservata per uso futuro.
CLUSTER_CHANGE_NODE_STATE (0x00000001)
La coda riceve una notifica quando un nodo cambia stato. Per un elenco dei possibili valori di stato del nodo, vedere GetClusterNodeState.
CLUSTER_CHANGE_QUORUM_STATE (0x10000000)
Questa notifica è riservata per uso futuro.
CLUSTER_CHANGE_REGISTRY_ATTRIBUTES (0x00000020)
La coda riceve una notifica quando vengono modificati gli attributi di una chiave del database del cluster . L'unico attributo chiave del database cluster attualmente definito è il descrittore di sicurezza, che può essere modificato con ClusterRegSetKeySecurity.
CLUSTER_CHANGE_REGISTRY_NAME (0x00000010)
La coda riceve una notifica quando il nome di una chiave del database del cluster è stato modificato.
CLUSTER_CHANGE_REGISTRY_SUBTREE (0x00000080)
Indica che gli altri eventi CLUSTER_CHANGE_REGISTRY si applicano all'intero database del cluster. Se questo flag non è incluso, gli eventi si applicano solo alla chiave specificata.
CLUSTER_CHANGE_REGISTRY_VALUE (0x00000040)
La coda riceve una notifica quando viene modificato o eliminato un valore della chiave del database cluster specificata. I valori del database del cluster possono essere modificati con la funzione ClusterRegSetValue ed eliminati con la funzione ClusterRegDeleteValue .
CLUSTER_CHANGE_RESOURCE_ADDED (0x00000400)
La coda riceve una notifica quando viene creata una nuova risorsa nel cluster.
CLUSTER_CHANGE_RESOURCE_DELETED (0x00000200)
La coda riceve una notifica quando viene eliminata una risorsa.
CLUSTER_CHANGE_RESOURCE_PROPERTY (0x00000800)
La coda riceve una notifica quando le proprietà, le dipendenze o i possibili nodi proprietario di una risorsa cambiano.
CLUSTER_CHANGE_RESOURCE_STATE (0x00000100)
La coda riceve una notifica quando una risorsa cambia stato. Per un elenco dei possibili valori dello stato della risorsa, vedere GetClusterResourceState.
CLUSTER_CHANGE_RESOURCE_TYPE_ADDED (0x00020000)
La coda riceve una notifica quando viene creato un nuovo tipo di risorsa nel cluster.
CLUSTER_CHANGE_RESOURCE_TYPE_DELETED (0x00010000)
La coda riceve una notifica quando viene eliminato un tipo di risorsa esistente.
CLUSTER_CHANGE_RESOURCE_TYPE_PROPERTY (0x00040000)
La coda riceve una notifica quando le proprietà di un tipo di risorsa cambiano.
[out] lpszName
Puntatore a una stringa Unicode con terminazione Null contenente il nome dell'oggetto cluster che ha attivato l'evento. Nell'elenco seguente viene descritto il contenuto di lpszName per tipo di evento. Si noti che CLUSTER_CHANGE_REGISTRY_SUBTREE non è incluso nella tabella; questo tipo di evento non viene mai gestito da GetClusterNotify.
CLUSTER_CHANGE_CLUSTER_PROPERTY (0x40000000)
Nome del cluster modificato.
CLUSTER_CHANGE_CLUSTER_RECONNECT (0x00080000)
Nome del cluster disconnesso.
CLUSTER_CHANGE_CLUSTER_STATE (0x20000000)
Nome del cluster modificato.
CLUSTER_CHANGE_GROUP_ADDED (0x00004000)
Nuovo nome del gruppo .
CLUSTER_CHANGE_GROUP_DELETED (0x00002000)
Nome del gruppo eliminato.
CLUSTER_CHANGE_GROUP_PROPERTY (0x00008000)
Nome del gruppo modificato.
CLUSTER_CHANGE_GROUP_STATE (0x00001000)
Nome del gruppo modificato.
CLUSTER_CHANGE_HANDLE_CLOSE (0x80000000)
Nome dell'oggetto da chiudere.
CLUSTER_CHANGE_NODE_ADDED (0x00000004)
Nome del nuovo nodo.
CLUSTER_CHANGE_NODE_DELETED (0x00000002)
Nome del nodo eliminato.
CLUSTER_CHANGE_NODE_PROPERTY (0x00000008)
Nome del nodo modificato.
CLUSTER_CHANGE_NODE_STATE (0x00000001)
Nome del nodo modificato.
CLUSTER_CHANGE_REGISTRY_ATTRIBUTES (0x00000020)
Nome relativo della chiave del database cluster modificata.
CLUSTER_CHANGE_REGISTRY_NAME (0x00000010)
Nome relativo della chiave del database cluster modificata.
CLUSTER_CHANGE_REGISTRY_VALUE (0x00000040)
Nome relativo della chiave del database cluster modificata.
CLUSTER_CHANGE_RESOURCE_ADDED (0x00000400)
Nuovo nome della risorsa .
CLUSTER_CHANGE_RESOURCE_DELETED (0x00000200)
Nome della risorsa eliminato.
CLUSTER_CHANGE_RESOURCE_PROPERTY (0x00000800)
Nome della risorsa modificata.
CLUSTER_CHANGE_RESOURCE_STATE (0x00000100)
Nome della risorsa modificata.
CLUSTER_CHANGE_RESOURCE_TYPE_ADDED (0x00020000)
Nome del nuovo tipo di risorsa.
CLUSTER_CHANGE_RESOURCE_TYPE_DELETED (0x00010000)
Nome del tipo di risorsa eliminato.
[in, out] lpcchName
Puntatore alla dimensione del buffer lpszName come conteggio di caratteri. In input specificare il numero massimo di caratteri che il buffer può contenere, incluso il valore NULL di terminazione. Nell'output specifica il numero di caratteri nel nome risultante, escluso il valore NULL di terminazione.
[in, optional] dwMilliseconds
Valore di timeout facoltativo che specifica per quanto tempo il chiamante è disposto ad attendere la notifica.
Valore restituito
Se l'operazione ha esito positivo, la funzione restituisce ERROR_SUCCESS.
Se l'operazione non riesce, la funzione restituisce un codice di errore di sistema. Di seguito sono riportati i valori possibili.
Codice/valore restituito | Descrizione |
---|---|
|
L'handle rappresentato nel parametro hChange non è valido o è stato chiuso da un altro thread. |
|
Timeout della chiamata prima che la notifica venga restituita correttamente. |
|
Il buffer a cui punta il parametro lpszName non è sufficientemente grande da contenere il risultato. Il parametro lpcchName restituisce il numero di caratteri nel risultato, escluso il valore NULL di terminazione. |
Commenti
Si noti che il parametro lpcchName fa riferimento a un conteggio di caratteri e non a un conteggio di byte e che la dimensione restituita non include il valore NULL di terminazione nel conteggio. Per altre informazioni sul ridimensionamento dei buffer, vedere Convenzioni delle dimensioni dei dati.
Le notifiche sono asincrone e lo stato del cluster al momento in cui l'applicazione elabora la notifica può essere diversa dallo stato del cluster al momento della generazione della notifica.
Esempio
Vedere l'esempio di porta di notifica.
Requisiti
Client minimo supportato | Nessuno supportato |
Server minimo supportato | Windows Server 2008 Enterprise, Windows Server 2008 Datacenter |
Piattaforma di destinazione | Windows |
Intestazione | clusapi.h |
Libreria | ClusAPI.lib |
DLL | ClusAPI.dll |