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 參數中傳遞的描述項不是有效的套接字。 |
備註
WSADeleteSocketPeerTargetName 函式提供方法,以移除對等目標名稱與套接字 IP 位址之間的關聯。 此函式可用來刪除先前使用 WSASetSocketPeerTargetName 函式設定的對等目標名稱。 在 WSADeleteSocketPeerTargetName 函式傳回之後,IP 位址的未來驗證不會使用先前指定的目標名稱。 此函式主要是設計成供無連線用戶端使用 (,例如,建立的套接字類型設定為 SOCK_DGRAM 或通訊協定設定為 IPPROTO_UDP) 之後,會終止與對等目標名稱相關聯之 IP 位址的連線。 例如,針對連線導向用戶端 (,建立的套接字類型設定為 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 |