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


Функция PeerIdentityCreate (p2p.h)

Функция PeerIdentityCreate создает новое удостоверение однорангового узла и возвращает его имя. Имя однорангового удостоверения должно передаваться во всех последующих вызовах функций однорангового Identity Manager, однорангового группирования или PNRP, которые работают от имени удостоверения однорангового узла. Имя удостоверения однорангового узла указывает, какое удостоверение однорангового узла используется.

Синтаксис

NOT_BUILD_WINDOWS_DEPRECATE HRESULT PeerIdentityCreate(
  [in]  PCWSTR     pwzClassifier,
  [in]  PCWSTR     pwzFriendlyName,
  [in]  HCRYPTPROV hCryptProv,
  [out] PWSTR      *ppwzIdentity
);

Параметры

[in] pwzClassifier

Указывает классификатор, добавляемый к имени опубликованного удостоверения однорангового узла. Эта строка является строкой Юникода и может иметь значение NULL. Эта строка может содержать только 150 символов, включая признак конца NULL .

[in] pwzFriendlyName

Указывает понятное имя удостоверения однорангового узла. Это строка Юникода, которая может иметь значение NULL. Эта строка может содержать только 256 символов, включая признак конца NULL . Если pwzFriendlyName имеет значение NULL, имя удостоверения является понятным. Понятное имя является необязательным и не обязательно должно быть уникальным.

[in] hCryptProv

Дескриптор поставщика служб шифрования (CSP), который содержит пару ключей AT_KEYEXCHANGE длиной не менее 1024 бит. Эта пара ключей используется в качестве основы для нового однорангового удостоверения. Если значение hCryptProv равно нулю (0), для однорангового удостоверения создается новая пара ключей.

Примечание API Identity Manager не поддерживает CSP с ключами, защищенными пользователем. Если используется CSP с ключами, защищенными пользователем, PeerIdentityCreate возвращает E_INVALIDARG.
 

[out] ppwzIdentity

Получает указатель на имя созданного удостоверения однорангового узла. Это имя должно использоваться во всех последующих вызовах функций однорангового Identity Manager, группирования одноранговых узлов или PNRP, которые работают от имени удостоверения однорангового узла. Возвращает значение NULL , если не удается создать удостоверение однорангового узла.

Возвращаемое значение

Если вызов функции завершается успешно, возвращаемое значение будет S_OK. В противном случае возвращается одно из следующих значений.

Код возврата Описание
ERROR_INVALID_HANDLE
Дескриптор ключа, указанного в hCryptProv , недопустим.
E_INVALIDARG
Один из параметров недопустим.
E_OUTOFMEMORY
Недостаточно памяти для выполнения указанной операции.
PEER_E_ALREADY_EXISTS
Удостоверение однорангового узла уже существует. Возникает, только если удостоверение однорангового узла на основе указанного ключа и классификатора уже существует.
PEER_E_NO_KEY_ACCESS
Доступ к удостоверению однорангового узла или ключам группы одноранговых узлов запрещен. Как правило, это вызвано неправильным списком управления доступом (ACL) для папки, содержащей ключи пользователя или компьютера. Это может произойти, если список ACL был сброшен вручную.
PEER_E_TOO_MANY_IDENTITIES
Удостоверение однорангового узла не может быть создано из-за слишком большого количества удостоверений одноранговых узлов.

Комментарии

Пара ключей и классификатор используются для создания имени однорангового узла нового удостоверения однорангового узла. После создания однорангового удостоверения оно автоматически сохраняется на диске.

Имя удостоверения должно быть освобождено с помощью PeerFreeData. Это не приведет к удалению удостоверения однорангового узла. Чтобы удалить удостоверение, используйте функцию PeerIdentityDelete .

Если hCryptProv не имеет значение NULL, его можно освободить с помощью CryptReleaseContext после возврата вызова.

Требования

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

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

CryptReleaseContext

PeerFreeData

PeerIdentityDelete