WSADeleteSocketPeerTargetName 函式 (ws2tcpip.h)
WSADeleteSocketPeerTargetName函式會移除對等目標名稱和通訊端 IP 位址之間的關聯。 成功傳回之後,IP 位址與目標名稱之間將不會有未來關聯。
語法
INT WSAAPI WSADeleteSocketPeerTargetName(
[in] SOCKET Socket,
[in] const sockaddr *PeerAddr,
[in] ULONG PeerAddrLen,
[in, optional] LPWSAOVERLAPPED Overlapped,
[in, optional] LPWSAOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine
);
參數
[in] Socket
描述項,識別要刪除對等目標名稱的通訊端。
[in] PeerAddr
要刪除目標名稱的對等 IP 位址。
[in] PeerAddrLen
PeerAddr參數的大小,以位元組為單位。
[in, optional] Overlapped
WSAOVERLAPPED結構的指標。 非重迭通訊端會忽略此參數。
[in, optional] CompletionRoutine
完成常式的指標,在作業完成時呼叫。 非重迭通訊端會忽略此參數。
傳回值
如果函式成功,則傳回值為 0。 否則,會傳回 SOCKET_ERROR 的值,而且可以呼叫 WSAGetLastError來擷取特定的錯誤碼。
以下列出一些可能的錯誤碼。
錯誤碼 | 意義 |
---|---|
不支援指定的位址系列。 | |
系統在嘗試使用呼叫的指標引數時偵測到不正確位址指標。 如果 PeerAddr 參數是 Null 指標,就會傳回此錯誤。 | |
傳遞了一個無效的參數。 如果未使用AF_INET或AF_INET6的位址系列和SOCK_DGRAM或SOCK_STREAM的通訊端類型建立通訊端傳入 Socket參數,就會傳回此錯誤。 | |
傳遞的緩衝區太小。 | |
在 Socket參數中傳遞的描述元不是有效的通訊端。 |
備註
WSADeleteSocketPeerTargetName函式提供方法來移除對等目標名稱和通訊端 IP 位址之間的關聯。 此函式用來刪除先前使用 WSASetSocketPeerTargetName 函式設定的對等目標名稱。 在 WSADeleteSocketPeerTargetName函式傳回之後,IP 位址的未來驗證將不會使用先前指定的目標名稱。 此函式主要是設計成由無連線用戶端使用 (,例如,以類型設定為 SOCK_DGRAM 或通訊協定設定為 IPPROTO_UDP) 的通訊端,以與對等目標名稱相關聯的 IP 位址終止連線之後設定為 IPPROTO_UDP) 。 例如,針對連線導向用戶端 (,建立的通訊端類型設定為 SOCK_STREAM 或通訊協定設定為 IPPROTO_TCP) ,則不應該呼叫此函式。
WSADeleteSocketPeerTargetName函式可簡化呼叫WSAIoctl函式,並將dwIoControlCode參數設定為SIO_DELETE_PEER_TARGET_NAME。
如果不符合下列條件,將會傳回錯誤。
- Socket參數的位址系列必須是 AF_INET 或 AF_INET6。
- 通訊端類型必須是SOCK_STREAM或SOCK_DGRAM。
規格需求
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平臺 | Windows |
標頭 | ws2tcpip.h |
程式庫 | Fwpuclnt.lib |
DLL | Fwpuclnt.dll |