Поделиться через


Функция 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

Указывает идентификатор открываемого однорангового графа. Этот идентификатор должен совпадать с идентификатором, используемым при вызове PeerGraphCreate.

Примечание Одноранговый узел, указывающий недопустимый (длинный) идентификатор графа, может открыть граф и подключиться к нему, но одноранговый узел не может опубликовать записи в графе, так как записи не могут быть проверены.
 

[in] pwzPeerId

Указывает уникальный идентификатор однорангового узла, открывающего граф.

Примечание Одноранговый узел, указывающий недопустимый (длинный) идентификатор графа, может открыть граф и подключиться к нему, но одноранговый узел не может опубликовать записи в графе, так как записи не могут быть проверены.
 

[in] pwzDatabaseName

Указывает имя базы данных, связанной с этим одноранговым графом на момент создания или открытия графа в первый раз.

[in] pSecurityInterface

Указывает поставщик безопасности для однорангового графа. Этот параметр должен указывать то же значение, что и pSecurityInterface , указанный в исходном вызове PeerGraphCreate.

[in] cRecordTypeSyncPrecedence

Указывает количество типов записей в параметре pRecordTypeSyncPrecedence .

[in] pRecordTypeSyncPrecedence

Указывает на массив типов записей. Этот массив задает порядок синхронизации записей указанных типов записей. Порядок может быть равен от нуля (0) до N, где 0 — это первый тип записи для синхронизации. Если тип записи не указан в массиве, он синхронизируется в порядке по умолчанию после синхронизации типов, указанных в массиве.

Укажите значение NULL , чтобы использовать порядок по умолчанию. Этот параметр должен иметь значение NULL, если cRecordTypeSyncPrecedence равно нулю (0).

[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 перед использованием этой функции.

Комментарии

Если вы разработали собственный поставщик общих служб, приложение не должно вызывать API PeerGraphing для доступа к данным в базе данных графирования, так как это может привести к взаимоблокировке. Вместо этого приложение должно искать кэшированную копию сведений.

После вызова PeerGraphOpen приложение может подписаться на события или импортировать базу данных или и то, и другое.

Пока одноранговый граф не будет синхронизирован хотя бы один раз, многие функции недоступны (например, PeerGraphListen или любая из функций управления записями), и все вызовы этих функций завершаются ошибкой. Одноранговый граф синхронизируется по крайней мере один раз, когда происходит одно из следующих действий:

  • Вызов PeerGraphOpen возвращает S_OK, что означает, что уже синхронизированная база данных найдена.
  • Была вызвана функция PeerGraphCreate .
  • Событие PEER_GRAPH_EVENT_STATUS_CHANGED активировано, и установлен флаг PEER_GRAPH_STATUS_SYNCHRONIZED элемента dwStatus .

Требования

Требование Значение
Минимальная версия клиента Windows XP с пакетом обновления 2 (SP2) [только классические приложения], Windows XP с пакетом обновления 1 (SP1) с дополнительным сетевым пакетом для Windows XP
Минимальная версия сервера Ни одна версия не поддерживается
Целевая платформа Windows
Header p2p.h
Библиотека P2PGraph.lib
DLL P2PGraph.dll

См. также раздел

PEER_SECURITY_INTERFACE

PeerGraphClose

PeerGraphCreate

PeerGraphListen