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 |
---|---|
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 . | |
A família de endereços especificada não tem suporte. | |
Um buffer passado era muito pequeno. | |
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
Usando extensões de soquete seguro
Plataforma de filtragem do Windows
Funções da API da Plataforma de Filtragem do Windows