Função WSAGetLastError (winsock2.h)

A função WSAGetLastError retorna o erro status da última operação do Windows Sockets que falhou.

Sintaxe

int WSAAPI WSAGetLastError();

Valor retornado

O valor retornado indica o código de erro da última operação do Windows Sockets desse thread que falhou.

Comentários

A função WSAGetLastError retorna o último erro que ocorreu para o thread de chamada. Quando uma função específica do Windows Sockets indica que ocorreu um erro, essa função deve ser chamada imediatamente para recuperar o código de erro estendido para a chamada de função com falha. Esse código de erro estendido pode ser diferente do código de erro obtido de getsockopt quando chamado com um parâmetro optname de SO_ERROR, que é específico do soquete, pois WSAGetLastError é para todos os soquetes específicos do thread.

Se o valor retornado de uma chamada de função indicar que o erro ou outros dados relevantes foram retornados no código de erro, WSAGetLastError deverá ser chamado imediatamente. Isso é necessário porque algumas funções podem redefinir o último código de erro estendido para 0 se tiverem êxito, substituindo o código de erro estendido retornado por uma função com falha anterior. Para redefinir especificamente o código de erro estendido, use a chamada de função WSASetLastError com o parâmetro iError definido como zero. Uma função getsockopt quando chamada com um parâmetro optname de SO_ERROR também redefine o código de erro estendido para zero.

A função WSAGetLastError não deve ser usada para marcar para um valor de erro estendido no recebimento de uma mensagem assíncrona. Nesse caso, o valor de erro estendido é passado no parâmetro lParam da mensagem e isso pode ser diferente do valor retornado por WSAGetLastError.

Nota Um aplicativo pode chamar a função WSAGetLastError para determinar o código de erro estendido para outras funções de soquetes do Windows, como normalmente é feito no Windows Sockets, mesmo que a função WSAStartup falhe ou a função WSAStartup não tenha sido chamada para inicializar corretamente o Windows Sockets antes de chamar uma função do Windows Sockets. A função WSAGetLastError é uma das únicas funções na DLL winsock 2.2 que pode ser chamada no caso de uma falha WSAStartup .
 

Os códigos de erro estendidos do Windows Sockets retornados por essa função e a descrição do texto do erro são listados em Códigos de Erro do Windows Sockets. Esses códigos de erro e uma descrição de texto curto associada a um código de erro são definidos no arquivo de cabeçalho Winerror.h . A função FormatMessage pode ser usada para obter a cadeia de caracteres de mensagem para o erro retornado.

Para obter informações sobre como lidar com códigos de erro ao portar aplicativos de soquete para Winsock, consulte Códigos de erro – errno, h_errno e WSAGetLastError.

Windows Phone 8: essa função tem suporte para aplicativos da Windows Phone Store no Windows Phone 8 e posterior.

Windows 8.1 e Windows Server 2012 R2: essa função tem suporte para aplicativos da Windows Store em Windows 8.1, Windows Server 2012 R2 e posterior.

Requisitos

   
Cliente mínimo com suporte Windows 8.1, Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho winsock2.h (inclua Winsock2.h)
Biblioteca Ws2_32.lib
DLL Ws2_32.dll

Confira também

Códigos de erro – errno, h_errno e WSAGetLastError

FormatMessage

WSASetLastError

Wsastartup

Códigos de erro do Windows Sockets

Funções Winsock

Referência de Winsock

Getsockopt