Funzione PeerGraphOpen (p2p.h)
La funzione PeerGraphOpen apre un grafo peer creato in precedenza dal nodo locale o da un nodo remoto. Viene restituito un handle per il grafico peer, ma non viene stabilita una connessione di rete.
Sintassi
NOT_BUILD_WINDOWS_DEPRECATE HRESULT PeerGraphOpen(
[in] PCWSTR pwzGraphId,
[in] PCWSTR pwzPeerId,
[in] PCWSTR pwzDatabaseName,
[in] PPEER_SECURITY_INTERFACE pSecurityInterface,
[in] ULONG cRecordTypeSyncPrecedence,
[in] const GUID *pRecordTypeSyncPrecedence,
[out] HGRAPH *phGraph
);
Parametri
[in] pwzGraphId
Specifica l'ID del grafico peer da aprire. Questo identificatore deve corrispondere all'ID usato nella chiamata a PeerGraphCreate.
[in] pwzPeerId
Specifica l'ID univoco del peer che apre il grafico.
[in] pwzDatabaseName
Specifica il nome del database associato a questo grafico peer al momento della creazione o dell'apertura del grafico per la prima volta.
[in] pSecurityInterface
Specifica il provider di sicurezza per un grafico peer. Questo parametro deve specificare lo stesso valore di pSecurityInterface specificato nella chiamata originale a PeerGraphCreate.
[in] cRecordTypeSyncPrecedence
Specifica il numero di tipi di record nel parametro pRecordTypeSyncPrecedence .
[in] pRecordTypeSyncPrecedence
Punta a una matrice di tipi di record. Questa matrice specifica l'ordine in cui vengono sincronizzati i record dei tipi di record specificati. L'ordine può essere zero (0) a N, dove 0 è il primo tipo di record da sincronizzare. Se nella matrice non viene specificato un tipo di record, viene sincronizzato nell'ordine predefinito dopo la sincronizzazione dei tipi specificati nella matrice.
Specificare NULL per usare l'ordine predefinito. Questo parametro deve essere NULL se cRecordTypeSyncPrecedence è zero (0).
[out] phGraph
Riceve un handle per il grafico peer aperto. Quando questo handle non è necessario o necessario, liberarlo chiamando PeerGraphClose.
Valore restituito
Restituisce S_OK se un database esistente è stato aperto correttamente. In caso contrario, la funzione restituisce uno dei valori seguenti:
Codice restituito | Descrizione |
---|---|
|
Uno dei parametri non è valido. |
|
Memoria insufficiente per eseguire l'operazione specificata. |
|
Non viene trovato un database esistente e ne viene creato uno nuovo. Se viene trovato e aperto correttamente un database esistente, viene restituito S_OK. |
|
L'handle per il grafico peer non è valido. |
|
Il grafo peer deve essere inizializzato usando una chiamata a PeerGraphStartup prima di usare questa funzione. |
Commenti
Se è stato sviluppato un provider di servizi condivisi personalizzato, l'applicazione non deve chiamare l'API PeerGraphing per accedere ai dati nel database di grafo, perché ciò può causare una situazione di deadlock. L'applicazione deve invece esaminare una copia memorizzata nella cache delle informazioni.
Dopo la chiamata a PeerGraphOpen , un'applicazione può sottoscrivere eventi o importare un database o entrambi.
Finché un grafo peer non viene sincronizzato almeno una volta, molte funzioni non sono disponibili (ad esempio , PeerGraphListen o una delle funzioni di gestione dei record) e le chiamate effettuate a queste funzioni hanno esito negativo. Un grafo peer viene sincronizzato almeno una volta quando si verifica una delle operazioni seguenti:
- Una chiamata a PeerGraphOpen restituisce S_OK, il che significa che è stato trovato un database già sincronizzato.
- È stata chiamata la funzione PeerGraphCreate .
- L'evento PEER_GRAPH_EVENT_STATUS_CHANGED è stato attivato e il flag PEER_GRAPH_STATUS_SYNCHRONIZED del membro dwStatus è stato impostato.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP con SP2 [solo app desktop],Windows XP con SP1 con Advanced Networking Pack forWindows XP |
Server minimo supportato | Nessuno supportato |
Piattaforma di destinazione | Windows |
Intestazione | p2p.h |
Libreria | P2PGraph.lib |
DLL | P2PGraph.dll |