Condividi tramite


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.

Nota Un peer che specifica un ID grafo non valido (long) può aprire e connettersi correttamente a un grafico, ma il peer non può pubblicare record nel grafico, perché i record non possono essere convalidati.
 

[in] pwzPeerId

Specifica l'ID univoco del peer che apre il grafico.

Nota Un peer che specifica un ID grafo non valido (long) può aprire e connettersi correttamente a un grafico, ma il peer non può pubblicare record nel grafico, perché i record non possono essere convalidati.
 

[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
E_INVALIDARG
Uno dei parametri non è valido.
E_OUTOFMEMORY
Memoria insufficiente per eseguire l'operazione specificata.
PEER_S_GRAPH_DATA_CREATED
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.
PEER_E_INVALID_GRAPH
L'handle per il grafico peer non è valido.
PEER_E_NOT_INITIALIZED
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

Vedi anche

PEER_SECURITY_INTERFACE

PeerGraphClose

PeerGraphCreate

PeerGraphListen