LPWSPADDRESSTOSTRING 콜백 함수(ws2spi.h)
LPWSPAddressToString 함수는 sockaddr 구조체의 모든 구성 요소를 주소의 사람이 읽을 수 있는 숫자 문자열 표현으로 변환합니다. 이는 주로 표시 목적으로 사용됩니다.
구문
LPWSPADDRESSTOSTRING Lpwspaddresstostring;
INT Lpwspaddresstostring(
[in] LPSOCKADDR lpsaAddress,
[in] DWORD dwAddressLength,
[in] LPWSAPROTOCOL_INFOW lpProtocolInfo,
[out] LPWSTR lpszAddressString,
[in, out] LPDWORD lpdwAddressStringLength,
[out] LPINT lpErrno
)
{...}
매개 변수
[in] lpsaAddress
문자열로 변환할 sockaddr 구조체에 대한 포인터입니다.
[in] dwAddressLength
sockaddr 주소의 길이(바이트)입니다.
[in] lpProtocolInfo
(필수) WSAProtocol_Info 변환을 수행할 공급자와 연결된 구조체입니다.
[out] lpszAddressString
사람이 읽을 수 있는 주소 문자열을 수신하는 버퍼입니다.
[in, out] lpdwAddressStringLength
AddressString 버퍼의 길이(바이트)입니다. 실제로 버퍼에 복사된 문자열의 길이를 반환합니다. 제공된 버퍼가 충분히 크지 않으면 함수가 WSAEFAULT 의 특정 오류와 함께 실패하고 이 매개 변수는 필요한 크기(바이트)로 업데이트됩니다.
[out] lpErrno
오류 코드에 대한 포인터입니다.
반환 값
오류가 발생하지 않으면 LPWSPAddressToString은 0을 반환합니다. 그렇지 않으면 SOCKET_ERROR 반환되고 lpErrno에서 특정 오류 코드를 사용할 수 있습니다.
오류 코드 | 의미 |
---|---|
지정한 AddressString 버퍼가 너무 작습니다. 더 큰 버퍼를 전달합니다. | |
지정된 주소가 유효한 소켓 주소가 아니거나 해당 주소 패밀리가 공급자에서 지원되지 않거나 지정된 lpProtocolInfo 가 공급자가 지원하는 WSAProtocol_Info 구조를 참조하지 않았습니다. |
설명
계층화된 서비스 공급자는 이 함수의 구현을 제공하지만 프로토콜 체인에서 다음 계층의 LPWSPAddressToString 을 호출하는 경우 이 함수의 클라이언트이기도 합니다. 프로토콜 체인의 계층을 통해 전파되므로 lpProtocolInfo 매개 변수에 몇 가지 특별한 고려 사항이 적용됩니다.
프로토콜 체인의 다음 계층이 다른 계층인 경우 다음 계층의 LPWSPAddressToString이 호출될 때 이 계층은 수정되지 않은 동일한 체인 정보를 사용하여 동일한 수정되지 않은 WSAProtocol_Info 구조를 참조하는 lpProtocolInfo 매개 변수를 다음 계층에 전달해야 합니다. 그러나 다음 계층이 기본 프로토콜(즉, 체인의 마지막 요소)인 경우 이 계층은 기본 공급자의 LPWSPAddressToString을 호출할 때 대체를 수행합니다. 이 경우 lpProtocolInfo 매개 변수에서 기본 공급자의 WSAPROTOCOL_INFO 구조를 참조해야 합니다. 이 정책의 중요한 이점 중 하나는 기본 서비스 공급자가 프로토콜 체인을 인식할 필요가 없다는 것입니다.
이 동일한 전파 정책은 LPWSPDuplicateSocket, WSPStartup, LPWSPSocket 또는 LPWSPStringToAddress와 같은 다른 함수의 계층화된 시퀀스를 통해 WSAProtocol_Info 구조를 전파할 때 적용됩니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | ws2spi.h |