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 相同。
[in] pwzPeerId
指定打开图形的对等方的唯一 ID。
[in] pwzDatabaseName
指定首次创建或打开图形时与此对等图关联的数据库的名称。
[in] pSecurityInterface
指定对等图的安全提供程序。 此参数必须指定与对 PeerGraphCreate 的原始调用中指定的 pSecurityInterface 相同的值。
[in] cRecordTypeSyncPrecedence
指定 pRecordTypeSyncPrecedence 参数中的记录类型数。
[in] pRecordTypeSyncPrecedence
指向记录类型的数组。 此数组指定同步指定记录类型的记录的顺序。 顺序可以为零 (0) N,其中 0 是要同步的第一个记录类型。 如果未在数组中指定记录类型,则会在数组中指定的类型同步后按默认顺序同步该记录类型。
指定 NULL 以使用默认顺序。 如果 cRecordTypeSyncPrecedence 为零 (0) ,此参数必须为 NULL。
[out] phGraph
接收打开的对等图的句柄。 如果不需要或不需要此句柄,请通过调用 PeerGraphClose 来释放它。
返回值
如果成功打开现有数据库,则返回S_OK。 否则,函数将返回以下值之一:
返回代码 | 说明 |
---|---|
|
其中一个参数无效。 |
|
没有足够的内存来执行指定的操作。 |
|
找不到现有数据库,并且已成功创建一个新数据库。 如果找到并成功打开现有数据库,则返回 S_OK 。 |
|
对等图的句柄无效。 |
|
在使用此函数之前,必须使用对 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 |