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 會傳回零。 否則,它會傳回SOCKET_ERROR,而且 lpErrno 中提供特定的錯誤碼。

錯誤碼 意義
WSAEFAULT
指定的 AddressString 緩衝區太小。 傳入較大的緩衝區。
WSAEINVAL
指定的位址不是有效的套接字位址,或提供者不支援其位址系列,或指定的 lpProtocolInfo 未參考提供者支援的 WSAProtocol_Info 結構。
 
 

備註

分層服務提供者提供此函式的實作,但如果呼叫通訊協定鏈結中下一層的 LPWSPAddressToString ,也是此函式的用戶端。 某些特殊考慮適用於 lpProtocolInfo 參數,因為它會透過通訊協定鏈結的層傳播。

如果通訊協定鏈結中的下一層是另一層,則當下一層的 LPWSPAddressToString 被呼叫時,此層必須傳遞至下一層 lpProtocolInfo 參數,該參數會參考相同未修改 的WSAProtocol_Info 結構與相同的未修改鏈結資訊。 不過,如果下一層是基底通訊協定 (,也就是鏈結) 的最後一個專案,則呼叫基底提供者 的 LPWSPAddressToString 時,此層會執行替代作業。 在此情況下,基底提供者 的WSAPROTOCOL_INFO 結構應該由 lpProtocolInfo 參數參考。 此原則的其中一個重要優點是基底服務提供者不需要注意通訊協定鏈結。

這個相同的傳播原則會在透過 LPWSPDuplicateSocketWSPSPSocketLPWSPSocketLPWSPStringToAddress 等分層序列 WSAProtocol_Info傳播結構時適用。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 ws2spi.h

另請參閱

WSAProtocol_Info

WSPDucplicateSocket

LPWSPSocket

WSPStartup

sockaddr