WSASetSocketPeerTargetName 함수(ws2tcpip.h)
WSASetSocketPeerTargetName 함수는 피어 IP 주소에 해당하는 SPN(피어 대상 이름)을 지정하는 데 사용됩니다. 이 대상 이름은 인증해야 하는 피어를 안전하게 식별하기 위해 클라이언트 애플리케이션에서 지정해야 합니다.
구문
INT WSAAPI WSASetSocketPeerTargetName(
[in] SOCKET Socket,
[in] const SOCKET_PEER_TARGET_NAME *PeerTargetName,
[in] ULONG PeerTargetNameLen,
[in, optional] LPWSAOVERLAPPED Overlapped,
[in, optional] LPWSAOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine
);
매개 변수
[in] Socket
피어 대상 이름이 할당되는 소켓을 식별하는 설명자입니다.
[in] PeerTargetName
피어 대상 이름을 정의하는 SOCKET_PEER_TARGET_NAME 구조체에 대한 포인터입니다.
[in] PeerTargetNameLen
PeerTargetName 매개 변수의 크기(바이트)입니다.
[in, optional] Overlapped
WSAOVERLAPPED 구조체에 대한 포인터입니다. 이 매개 변수는 겹치지 않는 소켓에 대해 무시됩니다.
[in, optional] CompletionRoutine
작업이 완료될 때 호출되는 완료 루틴에 대한 포인터입니다. 이 매개 변수는 겹치지 않는 소켓에 대해 무시됩니다.
반환 값
함수가 성공할 경우 반환 값은 0입니다. 그렇지 않으면 SOCKET_ERROR 값이 반환되고 WSAGetLastError를 호출하여 특정 오류 코드를 검색할 수 있습니다.
몇 가지 가능한 오류 코드가 아래에 나열되어 있습니다.
오류 코드 | 의미 |
---|---|
지정된 주소 패밀리는 지원되지 않습니다. | |
시스템에서 호출의 포인터 인수를 사용하려고 할 때 잘못된 주소 포인터를 검색했습니다. PeerTargetName 매개 변수가 NULL 포인터인 경우 이 오류가 반환됩니다. | |
잘못된 매개 변수가 전달되었습니다. 이 오류는 Socket 매개 변수에 전달된 소켓이 AF_INET 또는 AF_INET6 주소 패밀리와 소켓 유형의 SOCK_DGRAM또는SOCK_STREAM 만들어지지 않은 경우 반환됩니다. IP 주소와 포트가 PeerTargetName 매개 변수가 가리키는 SOCKET_PEER_TARGET_NAME 구조체의 PeerAddress 멤버에 있는 경우 연결 없는 소켓에도 이 오류가 반환됩니다. | |
소켓이 연결되어 있습니다. 이 함수는 소켓이 연결 지향인지 연결이 없는지 여부에 관계없이 연결된 소켓에서 허용되지 않습니다. | |
전달된 버퍼가 너무 작습니다. | |
Socket 매개 변수에 전달된 설명자가 유효한 소켓이 아닙니다. |
설명
WSASetSocketPeerTargetName 함수는 피어 보안 주체에 해당하는 대상 이름을 지정하는 메서드를 제공합니다. 이 함수는 클라이언트 애플리케이션에서 인증해야 하는 피어를 식별하는 데 사용됩니다. 클라이언트 애플리케이션은 신뢰할 수 있는 중간자 공격을 방지하기 위해 피어 대상 이름을 지정해야 합니다. 연결 없는 소켓의 경우 애플리케이션은 WSASetSocketPeerTargetName 함수를 여러 번 호출하여 다른 피어 IP 주소에 대해 서로 다른 대상 이름을 지정할 수 있습니다.
이 함수는 dwIoControlCode 매개 변수가 SIO_SET_PEER_TARGET_NAME 설정된 WSAIoctl 함수를 호출해야 하는 것을 간소화합니다.
연결 지향 소켓의 경우 WSAConnect 전에 WSASetSocketPeerTargetName 함수를 호출해야 합니다. 연결 없는 소켓의 경우 WSAConnect 이전 또는 피어 주소로 전달된 첫 번째 WSASendTo 호출 전에 이 함수를 호출해야 합니다.
다음 조건이 충족되지 않으면 오류가 반환됩니다.
- Socket 매개 변수의 주소 패밀리는 AF_INET 또는 AF_INET6 합니다.
- 소켓 유형은 SOCK_STREAM 또는 SOCK_DGRAM.
요구 사항
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | ws2tcpip.h |
라이브러리 | Fwpuclnt.lib |
DLL | Fwpuclnt.dll |