Поделиться через


Функция 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.

Ниже перечислены некоторые возможные коды ошибок.

Код ошибки Значение
WSAEAFNOSUPPORT
Указанное семейство адресов не поддерживается.
WSAEFAULT
Система обнаружила недопустимый указатель адреса при попытке использовать аргумент указателя вызова. Эта ошибка возвращается, если параметр PeerAddr был указателем NULL .
WSAEINVAL
Передан недопустимый параметр. Эта ошибка возвращается, если сокет, переданный в параметре Socket , не был создан с семейством адресов AF_INET или AF_INET6 и типом сокета SOCK_DGRAM или SOCK_STREAM.
WSAEMSGSIZE
Переданный буфер был слишком мал.
WSAENOTSOCK
Дескриптор, передаваемый в параметре Socket , не является допустимым сокетом.

Комментарии

Функция WSADeleteSocketPeerTargetName предоставляет метод для удаления связи между целевым именем однорангового узла и IP-адресом сокета. Эта функция используется для удаления имени целевого объекта однорангового узла, которое ранее было задано с помощью функции WSASetSocketPeerTargetName . После возврата функции WSADeleteSocketPeerTargetName не будет использоваться ранее указанное целевое имя. Эта функция в основном предназначена для использования клиентами без подключения (например, сокетом, созданным с типом 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
Header ws2tcpip.h
Библиотека Fwpuclnt.lib
DLL Fwpuclnt.dll

См. также раздел

Использование расширений безопасных сокетов

WSAImpersonateSocketPeer

WSAQuerySocketSecurity

WSARevertImpersonation

WSASetSocketPeerTargetName

WSASetSocketSecurity

Платформа фильтрации Windows

Функции API платформы фильтрации Windows

Расширения Winsock Secure Socket