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

指定要追加到已发布的对等标识名称的分类器。 此字符串是 Unicode 字符串,可以为 NULL。 此字符串的长度只能为 150 个字符,包括 NULL 终止符。

[in] pwzFriendlyName

指定对等标识的友好名称。 这是一个 Unicode 字符串,可以为 NULL。 此字符串的长度只能为 256 个字符,包括 NULL 终止符。 如果 pwzFriendlyNameNULL,则标识的名称为友好名称。 友好名称是可选的,并且不一定是唯一的。

[in] hCryptProv

加密服务提供程序 (CSP) 的句柄,其中包含长度至少为 1024 位的AT_KEYEXCHANGE密钥对。 此密钥对用作新对等标识的基础。 如果 hCryptProv 为零 (0) ,则会为对等标识生成新的密钥对。

注意Identity Manager API 不支持具有用户保护密钥的 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 释放它。

要求

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

另请参阅

CryptReleaseContext

PeerFreeData

PeerIdentityDelete