Compartilhar via


Função WSADeleteSocketPeerTargetName (ws2tcpip.h)

A função WSADeleteSocketPeerTargetName remove a associação entre um nome de destino par e um endereço IP para um soquete. Após um retorno bem-sucedido, não haverá nenhuma associação futura entre o endereço IP e o nome de destino.

Sintaxe

INT WSAAPI WSADeleteSocketPeerTargetName(
  [in]           SOCKET                             Socket,
  [in]           const sockaddr                     *PeerAddr,
  [in]           ULONG                              PeerAddrLen,
  [in, optional] LPWSAOVERLAPPED                    Overlapped,
  [in, optional] LPWSAOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine
);

Parâmetros

[in] Socket

Um descritor que identifica um soquete no qual o nome de destino do par está sendo excluído.

[in] PeerAddr

O endereço IP do par para o qual o nome de destino está sendo excluído.

[in] PeerAddrLen

O tamanho, em bytes, do parâmetro PeerAddr .

[in, optional] Overlapped

Um ponteiro para uma estrutura WSAOVERLAPPED . Esse parâmetro é ignorado para soquetes não sobrepostos.

[in, optional] CompletionRoutine

Um ponteiro para a rotina de conclusão chamado quando a operação foi concluída. Esse parâmetro é ignorado para soquetes não sobrepostos.

Retornar valor

Se a função for bem-sucedida, o valor retornado será 0. Caso contrário, um valor de SOCKET_ERROR será retornado e um código de erro específico poderá ser recuperado chamando WSAGetLastError.

Alguns códigos de erro possíveis estão listados abaixo.

Código do erro Significado
WSAEAFNOSUPPORT
A família de endereços especificada não tem suporte.
WSAEFAULT
O sistema detectou um ponteiro de endereço inválido ao tentar usar um argumento de ponteiro de uma chamada. Esse erro será retornado se o parâmetro PeerAddr for um ponteiro NULL .
WSAEINVAL
Um parâmetro inválido foi passado. Esse erro será retornado se o soquete passado no parâmetro Socket não tiver sido criado com uma família de endereços do AF_INET ou AF_INET6 e um tipo de soquete de SOCK_DGRAM ou SOCK_STREAM.
WSAEMSGSIZE
Um buffer passado era muito pequeno.
WSAENOTSOCK
O descritor passado no parâmetro Socket não é um soquete válido.

Comentários

A função WSADeleteSocketPeerTargetName fornece um método para remover a associação entre um nome de destino par e um endereço IP para um soquete. Essa função é usada para excluir um nome de destino par que foi definido anteriormente com a função WSASetSocketPeerTargetName . Depois que a função WSADeleteSocketPeerTargetName retornar, nenhuma autenticação futura no endereço IP usará o nome de destino especificado anteriormente. Essa função foi projetada principalmente para ser usada por clientes sem conexão (por exemplo, um soquete criado com o tipo definido como SOCK_DGRAM ou o protocolo definido como IPPROTO_UDP) depois que eles terminaram a conexão com o endereço IP associado ao nome de destino par. Para clientes orientados à conexão (por exemplo, um soquete criado com o tipo definido como SOCK_STREAM ou protocolo definido como IPPROTO_TCP), essa função não deve ser chamada.

A função WSADeleteSocketPeerTargetName simplifica a necessidade de chamar a função WSAIoctl com um parâmetro dwIoControlCode definido como SIO_DELETE_PEER_TARGET_NAME.

Um erro será retornado se as condições a seguir não forem atendidas.

  • A família de endereços do parâmetro Socket deve ser AF_INET ou AF_INET6.
  • O tipo de soquete deve ser SOCK_STREAM ou SOCK_DGRAM.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho ws2tcpip.h
Biblioteca Fwpuclnt.lib
DLL Fwpuclnt.dll

Confira também

Usando extensões de soquete seguro

WSAImpersonateSocketPeer

WSAQuerySocketSecurity

WSARevertImpersonation

WSASetSocketPeerTargetName

WSASetSocketSecurity

Plataforma de filtragem do Windows

Funções da API da Plataforma de Filtragem do Windows

Extensões de soquete seguro winsock