다음을 통해 공유


PeerIdentityCreate 함수(p2p.h)

PeerIdentityCreate 함수는 새 피어 ID를 만들고 해당 이름을 반환합니다. 피어 ID의 이름은 피어 ID를 대신하여 작동하는 피어 Identity Manager, 피어 그룹화 또는 PNRP 함수에 대한 모든 후속 호출에서 전달되어야 합니다. 피어 ID 이름은 사용 중인 피어 ID를 지정합니다.

구문

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

매개 변수

[in] pwzClassifier

게시된 피어 ID 이름에 추가할 분류자를 지정합니다. 이 문자열은 유니코드 문자열이며 NULL일 수 있습니다. 이 문자열은 NULL 종결자를 포함하여 150자 길이일 수 있습니다.

[in] pwzFriendlyName

피어 ID의 이름을 지정합니다. 유니코드 문자열이며 NULL일 수 있습니다. 이 문자열은 NULL 종결자를 포함하여 256자 길이일 수 있습니다. pwzFriendlyNameNULL인 경우 ID의 이름은 식별 이름입니다. 식별 이름은 선택 사항이며 고유할 필요는 없습니다.

[in] hCryptProv

길이가 1024비트 이상인 AT_KEYEXCHANGE 키 쌍을 포함하는 CSP(암호화 서비스 공급자)에 대한 핸들입니다. 이 키 쌍은 새 피어 ID의 기초로 사용됩니다. hCryptProv가 0이면 피어 ID에 대한 새 키 쌍이 생성됩니다.

참고 Identity Manager API는 사용자 보호 키가 있는 CSP를 지원하지 않습니다. 사용자 보호 키가 있는 CSP를 사용하는 경우 PeerIdentityCreateE_INVALIDARG 반환합니다.
 

[out] ppwzIdentity

생성된 피어 ID의 이름에 대한 포인터를 받습니다. 이 이름은 피어 ID를 대신하여 작동하는 피어 Identity Manager, 피어 그룹화 또는 PNRP 함수에 대한 모든 후속 호출에서 사용해야 합니다. 피어 ID를 만들 수 없는 경우 NULL 을 반환합니다.

반환 값

함수 호출이 성공하면 반환 값이 S_OK. 그렇지 않으면 다음 값 중 하나를 반환합니다.

반환 코드 설명
ERROR_INVALID_HANDLE
hCryptProv에서 지정한 키에 대한 핸들이 잘못되었습니다.
E_INVALIDARG
매개 변수 중 하나가 잘못되었습니다.
E_OUTOFMEMORY
지정된 작업을 수행할 메모리가 부족합니다.
PEER_E_ALREADY_EXISTS
피어 ID가 이미 있습니다. 지정된 키 및 분류자를 기반으로 하는 피어 ID가 이미 있는 경우에만 발생합니다.
PEER_E_NO_KEY_ACCESS
피어 ID 또는 피어 그룹 키에 대한 액세스가 거부되었습니다. 일반적으로 이는 사용자 또는 컴퓨터 키를 포함하는 폴더의 잘못된 ACL(액세스 제어 목록)에 의해 발생합니다. 이 문제는 ACL이 수동으로 다시 설정되었을 때 발생할 수 있습니다.
PEER_E_TOO_MANY_IDENTITIES
피어 ID가 너무 많기 때문에 피어 ID를 만들 수 없습니다.

설명

키 쌍 및 분류자는 새 피어 ID의 피어 이름을 생성하는 데 사용됩니다. 피어 ID를 만든 후에는 디스크에 자동으로 저장됩니다.

PeerFreeData를 사용하여 ID 이름을 해제해야 합니다. 이렇게 하면 피어 ID가 삭제되지 않습니다. ID를 삭제하려면 PeerIdentityDelete 함수를 사용합니다.

hCryptProvNULL이 아닌 경우 호출이 반환된 후 CryptReleaseContext를 사용하여 해제할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 WINDOWS XP SP2 [데스크톱 앱만 해당],Windows XP용 고급 네트워킹 팩이 있는 WINDOWS XP SP1
지원되는 최소 서버 지원되는 버전 없음
대상 플랫폼 Windows
헤더 p2p.h
라이브러리 P2P.lib
DLL P2P.dll

추가 정보

CryptReleaseContext

PeerFreeData

PeerIdentityDelete