Fonction WSAGetLastError (winsock.h)

La fonction WSAGetLastError retourne l’erreur status pour la dernière opération de sockets Windows qui a échoué.

Syntaxe

int WSAGetLastError();

Valeur de retour

La valeur de retour indique le code d’erreur de la dernière opération de sockets Windows de ce thread qui a échoué.

Remarques

La fonction WSAGetLastError retourne la dernière erreur qui s’est produite pour le thread appelant. Lorsqu’une fonction Windows Sockets particulière indique qu’une erreur s’est produite, cette fonction doit être appelée immédiatement pour récupérer le code d’erreur étendu pour l’appel de fonction défaillant. Ce code d’erreur étendu peut être différent du code d’erreur obtenu à partir de getockopt lorsqu’il est appelé avec un paramètre optname de SO_ERROR, qui est spécifique au socket, car WSAGetLastError concerne tous les sockets spécifiques au thread.

Si la valeur de retour d’un appel de fonction indique que l’erreur ou d’autres données pertinentes ont été retournées dans le code d’erreur, WSAGetLastError doit être appelé immédiatement. Cela est nécessaire, car certaines fonctions peuvent réinitialiser le dernier code d’erreur étendu à 0 si elles réussissent, en remplaçant le code d’erreur étendu retourné par une fonction ayant précédemment échoué. Pour réinitialiser spécifiquement le code d’erreur étendu, utilisez l’appel de fonction WSASetLastError avec le paramètre iError défini sur zéro. Une fonction getsockopt lorsqu’elle est appelée avec un paramètre optname de SO_ERROR réinitialise également le code d’erreur étendu à zéro.

La fonction WSAGetLastError ne doit pas être utilisée pour case activée pour une valeur d’erreur étendue à la réception d’un message asynchrone. Dans ce cas, la valeur d’erreur étendue est transmise dans le paramètre lParam du message, ce qui peut différer de la valeur retournée par WSAGetLastError.

Note Une application peut appeler la fonction WSAGetLastError pour déterminer le code d’erreur étendu pour d’autres fonctions de sockets Windows, comme cela se fait normalement dans les sockets Windows, même si la fonction WSAStartup échoue ou si la fonction WSAStartup n’a pas été appelée pour initialiser correctement les sockets Windows avant d’appeler une fonction Windows Sockets. La fonction WSAGetLastError est l’une des seules fonctions de la DLL Winsock 2.2 qui peut être appelée en cas de défaillance de WSAStartup .
 

Les codes d’erreur étendus des sockets Windows retournés par cette fonction et la description textuelle de l’erreur sont répertoriés sous Codes d’erreur des sockets Windows. Ces codes d’erreur et une brève description textuelle associée à un code d’erreur sont définis dans le fichier d’en-tête Winerror.h . La fonction FormatMessage peut être utilisée pour obtenir la chaîne de message pour l’erreur retournée.

Pour plus d’informations sur la gestion des codes d’erreur lors du portage d’applications socket vers Winsock, consultez Codes d’erreur - errno, h_errno et WSAGetLastError.

Windows Phone 8 : cette fonction est prise en charge pour les applications du Store Windows Phone Windows Phone 8 et versions ultérieures.

Windows 8.1 et Windows Server 2012 R2 : cette fonction est prise en charge pour les applications du Windows Store sur Windows 8.1, Windows Server 2012 R2 et versions ultérieures.

Configuration requise

   
Client minimal pris en charge Windows 8.1, Windows Vista [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête winsock.h (inclure Winsock2.h)
Bibliothèque Ws2_32.lib
DLL Ws2_32.dll

Voir aussi

Codes d’erreur : errno, h_errno et WSAGetLastError

FormatMessage

WSASetLastError

WSAStartup

Codes d’erreur des sockets Windows

Fonctions Winsock

Informations de référence sur Winsock

getsockopt