Compartilhar via


Função WSAImpersonateSocketPeer (ws2tcpip.h)

A função WSAImpersonateSocketPeer é usada para representar a entidade de segurança correspondente a um par de soquetes para executar a autorização no nível do aplicativo.

Sintaxe

INT WSAAPI WSAImpersonateSocketPeer(
  [in]           SOCKET         Socket,
  [in, optional] const sockaddr *PeerAddr,
  [in]           ULONG          PeerAddrLen
);

Parâmetros

[in] Socket

Identifica o soquete do aplicativo.

[in, optional] PeerAddr

O endereço IP do par a ser representado. Para soquetes orientados à conexão, o soquete conectado identifica exclusivamente um par. Nesse caso, esse parâmetro é ignorado.

[in] PeerAddrLen

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

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
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 .
WSAEAFNOSUPPORT
A família de endereços especificada não tem suporte.
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 WSAImpersonateSocketPeer fornece a um aplicativo a capacidade de representar a entidade de segurança correspondente a um par de soquetes para executar a autorização no nível do aplicativo. Se o token de usuário par (representação) estiver disponível, ele será usado para representação, caso contrário, o token de computador par será usado. A função WSAImpersonateSocketPeer só pode ser chamada para bloqueio, soquetes não sobrepostos. Depois de executar quaisquer verificações de autorização, um aplicativo deve chamar a função WSARevertImpersonation para encerrar a representação.

Para soquetes orientados à conexão, a função WSAImpersonateSocketPeer deve ser chamada depois que uma conexão é estabelecida. Para um aplicativo de servidor que usa soquetes orientados à conexão, o WSAImpersonateSocketPeer deve ser chamado após o retorno da função accept, AcceptEx ou WSAAccept .

Para soquetes sem conexão, o aplicativo deve chamar a função WSAImpersonateSocketPeer imediatamente após o retorno da função recv, recvfrom, WSARecv, WSARecvEx, WSARecvFrom ou LPFN_WSARECVMSG (WSARecvMsg) para um novo endereço par.

A função WSAImpersonateSocketPeer pode ser chamada várias vezes para um único soquete.

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.

A função WSARevertImpersonation deve ser chamada para encerrar a representação.

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

AcceptEx

Usando extensões de soquete seguro

Wsaaccept

WSADeleteSocketPeerTargetName

WSAQuerySocketSecurity

WSARecv

WSARecvEx

WSARecvFrom

LPFN_WSARECVMSG (WSARecvMsg)

WSARevertImpersonation

WSASetSocketPeerTargetName

WSASetSocketSecurity

Plataforma de filtragem do Windows

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

Extensões de soquete seguro winsock

accept

Recv

Recvfrom