Freigeben über


WSAGetLastError-Funktion (winsock.h)

Die WSAGetLastError-Funktion gibt den Fehler status für den letzten fehlgeschlagenen Windows Sockets-Vorgang zurück.

Syntax

int WSAGetLastError();

Rückgabewert

Der Rückgabewert gibt den Fehlercode für den letzten Windows Sockets-Vorgang dieses Threads an, bei dem ein Fehler aufgetreten ist.

Hinweise

Die WSAGetLastError-Funktion gibt den letzten Fehler zurück, der für den aufrufenden Thread aufgetreten ist. Wenn eine bestimmte Windows Sockets-Funktion angibt, dass ein Fehler aufgetreten ist, sollte diese Funktion sofort aufgerufen werden, um den erweiterten Fehlercode für den fehlerhaften Funktionsaufruf abzurufen. Dieser erweiterte Fehlercode kann sich vom Fehlercode unterscheiden, der aus getsockopt abgerufen wird, wenn er mit einem optname-Parameter von SO_ERROR aufgerufen wird, der socketspezifisch ist, da WSAGetLastError für alle threadspezifischen Sockets gilt.

Wenn der Rückgabewert eines Funktionsaufrufs angibt, dass fehler- oder andere relevante Daten im Fehlercode zurückgegeben wurden, sollte WSAGetLastError sofort aufgerufen werden. Dies ist erforderlich, da einige Funktionen den letzten erweiterten Fehlercode bei Erfolgreicher Ausführung auf 0 zurücksetzen und den erweiterten Fehlercode überschreiben, der von einer zuvor fehlgeschlagenen Funktion zurückgegeben wurde. Um den erweiterten Fehlercode speziell zurückzusetzen, verwenden Sie den Funktionsaufruf WSASetLastError , wobei der iError-Parameter auf 0 festgelegt ist. Eine getsockopt-Funktion , wenn sie mit einem optname-Parameter von aufgerufen wird SO_ERROR setzt auch den erweiterten Fehlercode auf Null zurück.

Die WSAGetLastError-Funktion sollte nicht verwendet werden, um beim Empfang einer asynchronen Nachricht nach einem erweiterten Fehlerwert zu suchen. In diesem Fall wird der erweiterte Fehlerwert im lParam-Parameter der Nachricht übergeben, und dieser kann sich von dem von WSAGetLastError zurückgegebenen Wert unterscheiden.

Hinweis Eine Anwendung kann die WSAGetLastError-Funktion aufrufen, um den erweiterten Fehlercode für andere Windows-Socketfunktionen zu ermitteln, wie dies in Windows Sockets üblich ist, auch wenn die WSAStartup-Funktion fehlschlägt oder die WSAStartup-Funktion nicht aufgerufen wurde, um Windows Sockets vor dem Aufrufen einer Windows Sockets-Funktion ordnungsgemäß zu initialisieren. Die WSAGetLastError-Funktion ist eine der einzigen Funktionen in der Winsock 2.2-DLL, die im Falle eines WSAStartup-Fehlers aufgerufen werden kann.
 

Die erweiterten Windows Sockets-Fehlercodes, die von dieser Funktion zurückgegeben werden, und die Textbeschreibung des Fehlers werden unter Windows Sockets-Fehlercodes aufgeführt. Diese Fehlercodes und eine kurze Textbeschreibung, die einem Fehlercode zugeordnet ist, werden in der Winerror.h-Headerdatei definiert. Die FormatMessage-Funktion kann verwendet werden, um die Meldungszeichenfolge für den zurückgegebenen Fehler abzurufen.

Informationen zum Behandeln von Fehlercodes beim Portieren von Socketanwendungen zu Winsock finden Sie unter Fehlercodes – errno, h_errno und WSAGetLastError.

Windows Phone 8: Diese Funktion wird für Windows Phone Store-Apps ab Windows Phone 8 unterstützt.

Windows 8.1 und Windows Server 2012 R2: Diese Funktion wird für Windows Store-Apps unter Windows 8.1, Windows Server 2012 R2 und höher unterstützt.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 8.1, Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile winsock.h (Winsock2.h einschließen)
Bibliothek Ws2_32.lib
DLL Ws2_32.dll

Weitere Informationen

Fehlercodes: errno, h_errno und WSAGetLastError

FormatMessage

WSASetLastError

WSAStartup

Windows Sockets-Fehlercodes

Winsock-Funktionen

Winsock-Referenz

getsockopt