LPWSPSTRINGTOADDRESS 回呼函式 (ws2spi.h)
WSPStringToAddress 函式會將人類可讀取的數值字串轉換成套接字地址結構, (sockaddr) 適合傳遞至採用這類結構的 Windows Sockets 例程。 如果可能,位址的任何遺漏元件預設為合理的值。 例如,遺漏的埠號碼預設為零。
語法
LPWSPSTRINGTOADDRESS Lpwspstringtoaddress;
INT Lpwspstringtoaddress(
[in] LPWSTR AddressString,
[in] INT AddressFamily,
[in] LPWSAPROTOCOL_INFOW lpProtocolInfo,
[out] LPSOCKADDR lpAddress,
[in, out] LPINT lpAddressLength,
[out] LPINT lpErrno
)
{...}
參數
[in] AddressString
要轉換之以零結束、人類可讀取字串的指標。
[in] AddressFamily
字串所屬的位址系列,如果字串未知,則AF_UNSPEC。
[in] lpProtocolInfo
) 提供者WSAProtocol_Info結構 所需的 (。
[out] lpAddress
填入單一 sockaddr 結構的緩衝區。
[in, out] lpAddressLength
位址緩衝區的長度,以位元組為單位。 傳回結果 sockaddr 結構的大小。 如果提供的緩衝區不夠大,則函式會失敗,並出現 WSAEFAULT 的特定錯誤,且此參數會以所需的位元組大小進行更新。
[out] lpErrno
錯誤碼的指標。
傳回值
如果沒有發生錯誤, WSPStringToAddress 會傳回零。 否則,會傳回SOCKET_ERROR值,而且 lpErrno 中提供特定的錯誤碼。
錯誤碼 | 意義 |
---|---|
指定的位址緩衝區太小,傳入較大的緩衝區。 | |
無法將字串轉譯為 sockaddr,或提供者無法支援指定的位址系列,或指定的 lpProtocolInfo 未參考提供者支援的 WSAProtocol_Info 結構。 |
備註
分層服務提供者會提供此函式的實作,但如果它呼叫通訊協定鏈結中下一層的 WSPStringToAddress ,也是此函式的用戶端。 某些特殊考慮適用於此函式的 lpProtocolInfo 參數,因為它會透過通訊協定鏈結的層傳播。
如果通訊協定鏈結中的下一層是另一層,則呼叫下一層的 WSPStringToAddress 時,此層必須傳遞至下一層 lpProtocolInfo ,以相同的未修改鏈結資訊參考相同未修改 WSAProtocol_Info 結構。 不過,如果下一層是基底通訊協定 (也就是鏈結) 的最後一個專案,則呼叫基底提供者的 WSPStringToAddress 時,此層會執行替代。 在此情況下,基底提供者 的WSAPROTOCOL_INFO 結構應該由 lpProtocolInfo 參數參考。
此原則的其中一個重要優點是基底服務提供者不需要注意通訊協定鏈結。
這個相同的傳播原則會在透過 LPWSPAddressToString、LPWSPDuplicateSocket、WSPStartup 或 LPWSPSocket 等其他函式分層序列來傳播WSAProtocol_Info結構時適用。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | ws2spi.h |