PeerGraphOpen 函数 (p2p.h)

PeerGraphOpen 函数打开以前由本地节点或远程节点创建的对等图。 返回对等图的句柄,但未建立网络连接。

语法

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
);

参数

[in] pwzGraphId

指定要打开的对等图的 ID。 此标识符必须与调用 PeerGraphCreate 中使用的 ID 相同。

注意 指定无效 (长) 图形 ID 的对等方可以打开并成功连接到图形,但对等方无法将记录发布到图形,因为无法验证记录。
 

[in] pwzPeerId

指定打开图形的对等方的唯一 ID。

注意 指定无效 (长) 图形 ID 的对等方可以打开并成功连接到图形,但对等方无法将记录发布到图形,因为无法验证记录。
 

[in] pwzDatabaseName

指定首次创建或打开图形时与此对等图关联的数据库的名称。

[in] pSecurityInterface

指定对等图的安全提供程序。 此参数必须指定与对 PeerGraphCreate 的原始调用中指定的 pSecurityInterface 相同的值。

[in] cRecordTypeSyncPrecedence

指定 pRecordTypeSyncPrecedence 参数中的记录类型数。

[in] pRecordTypeSyncPrecedence

指向记录类型的数组。 此数组指定同步指定记录类型的记录的顺序。 顺序可以为零 (0) N,其中 0 是要同步的第一个记录类型。 如果未在数组中指定记录类型,则会在数组中指定的类型同步后按默认顺序同步该记录类型。

指定 NULL 以使用默认顺序。 如果 cRecordTypeSyncPrecedence 为零 (0) ,此参数必须为 NULL

[out] phGraph

接收打开的对等图的句柄。 如果不需要或不需要此句柄,请通过调用 PeerGraphClose 来释放它。

返回值

如果成功打开现有数据库,则返回S_OK。 否则,函数将返回以下值之一:

返回代码 说明
E_INVALIDARG
其中一个参数无效。
E_OUTOFMEMORY
没有足够的内存来执行指定的操作。
PEER_S_GRAPH_DATA_CREATED
找不到现有数据库,并且已成功创建一个新数据库。 如果找到并成功打开现有数据库,则返回 S_OK
PEER_E_INVALID_GRAPH
对等图的句柄无效。
PEER_E_NOT_INITIALIZED
在使用此函数之前,必须使用对 PeerGraphStartup 的调用来初始化对等图。

注解

如果已开发自己的 SSP,则应用程序不得调用 PeerGraphing API 来访问图形数据库中的数据,因为这可能导致死锁情况。 相反,应用程序应查看信息的缓存副本。

调用 PeerGraphOpen 后,应用程序可以订阅事件或导入数据库,或者同时订阅两者。

在至少同步一次对等图之前,许多函数 (例如 PeerGraphListen 或任何记录管理功能) 不可用,并且对这些函数所做的任何调用都失败。 发生以下情况之一时,至少同步一次对等图:

  • 调用 PeerGraphOpen 将返回 S_OK,这意味着已找到已同步的数据库。
  • 已调用 PeerGraphCreate 函数。
  • 已触发PEER_GRAPH_EVENT_STATUS_CHANGED事件,并且已设置 dwStatus 成员的PEER_GRAPH_STATUS_SYNCHRONIZED标志。

要求

要求
最低受支持的客户端 具有 SP2 的 Windows XP [仅限桌面应用],具有 SP1 的 Windows XP 与高级网络包 forWindows XP
最低受支持的服务器 无受支持的版本
目标平台 Windows
标头 p2p.h
Library P2PGraph.lib
DLL P2PGraph.dll

另请参阅

PEER_SECURITY_INTERFACE

PeerGraphClose

PeerGraphCreate

PeerGraphListen