다음을 통해 공유


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를 호출하여 특정 오류 코드를 검색할 수 있습니다.

몇 가지 가능한 오류 코드가 아래에 나열되어 있습니다.

오류 코드 의미
WSAEAFNOSUPPORT
지정된 주소 패밀리는 지원되지 않습니다.
WSAEFAULT
시스템에서 호출의 포인터 인수를 사용하려고 할 때 잘못된 주소 포인터를 검색했습니다. PeerTargetName 매개 변수가 NULL 포인터인 경우 이 오류가 반환됩니다.
WSAEINVAL
잘못된 매개 변수가 전달되었습니다. 이 오류는 Socket 매개 변수에 전달된 소켓이 AF_INET 또는 AF_INET6 주소 패밀리와 소켓 유형의 SOCK_DGRAM또는SOCK_STREAM 만들어지지 않은 경우 반환됩니다. IP 주소와 포트가 PeerTargetName 매개 변수가 가리키는 SOCKET_PEER_TARGET_NAME 구조체의 PeerAddress 멤버에 있는 경우 연결 없는 소켓에도 이 오류가 반환됩니다.
WSAEISCONN
소켓이 연결되어 있습니다. 이 함수는 소켓이 연결 지향인지 연결이 없는지 여부에 관계없이 연결된 소켓에서 허용되지 않습니다.
WSAEMSGSIZE
전달된 버퍼가 너무 작습니다.
WSAENOTSOCK
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

참고 항목

SOCKET_PEER_TARGET_NAME

보안 소켓 확장 사용

WSADeleteSocketPeerTargetName

WSAImpersonateSocketPeer

WSAQuerySocketSecurity

WSARevertImpersonation

WSASetSocketSecurity

Windows 필터링 플랫폼

Windows 필터링 플랫폼 API 함수

Winsock Secure Socket 확장