Freigeben über


WSACancelAsyncRequest-Funktion (winsock.h)

Die WSACancelAsyncRequest-Funktion bricht einen unvollständigen asynchronen Vorgang ab.

Syntax

int WSACancelAsyncRequest(
  [in] HANDLE hAsyncTaskHandle
);

Parameter

[in] hAsyncTaskHandle

Handle, das den asynchronen Vorgang angibt, der abgebrochen werden soll.

Rückgabewert

Der von WSACancelAsyncRequest zurückgegebene Wert ist null, wenn der Vorgang erfolgreich abgebrochen wurde. Andernfalls wird der Wert SOCKET_ERROR zurückgegeben, und eine bestimmte Fehlernummer kann durch Aufrufen von WSAGetLastError abgerufen werden.

Fehlercode Bedeutung
WSANOTINITIALISIERT
Vor der Verwendung dieser Funktion muss ein erfolgreicher WSAStartup-Aufruf erfolgen.
WSAENETDOWN
Fehler beim Netzwerksubsystem.
WSAEINVAL
Gibt an, dass das angegebene asynchrone Aufgabenhandle ungültig war.
WSAEINPROGRESS
Ein blockierter Windows Sockets 1.1-Aufruf wird ausgeführt, oder der Dienstanbieter verarbeitet noch eine Rückruffunktion.
WSAEALREADY
Die asynchrone Routine, die abgebrochen wird, wurde bereits abgeschlossen.
 
Hinweis Es ist unklar, ob die Anwendung sinnvoll zwischen WSAEINVAL und WSAEALREADY unterscheiden kann, da der Fehler in beiden Fällen angibt, dass kein asynchroner Vorgang mit dem angegebenen Handle ausgeführt wird. (Triviale Ausnahme: Null ist immer ein ungültiges asynchrones Aufgabenhandle.) Die Windows Sockets-Spezifikation schreibt nicht vor, wie ein konformer Windows Sockets-Anbieter zwischen den beiden Fällen unterscheiden soll. Für maximale Portabilität sollte eine Windows Sockets-Anwendung die beiden Fehler als gleichwertig behandeln.
 

Hinweise

Die WSACancelAsyncRequest-Funktion wird verwendet, um einen asynchronen Vorgang abzubrechen, der von einer der WSAAsyncGetXByY-Funktionen wie WSAAsyncGetHostByName initiiert wurde. Der abzubrechende Vorgang wird durch den hAsyncTaskHandle-Parameter identifiziert, der auf das asynchrone Aufgabenhandle festgelegt werden sollte, wie es von der initiierenden WSAAsyncGetXByY-Funktion zurückgegeben wird.

Der Versuch, einen vorhandenen asynchronen WSAAsyncGetXByY-Vorgang abzubrechen, kann aus zwei Gründen mit dem Fehlercode WSAEALREADY fehlschlagen. Erstens wurde der ursprüngliche Vorgang bereits abgeschlossen, und die Anwendung hat sich mit der resultierenden Meldung befasst. Zweitens ist der ursprüngliche Vorgang bereits abgeschlossen, aber die resultierende Meldung wartet weiterhin in der Anwendungsfensterwarteschlange.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winsock.h (Winsock2.h einschließen)
Bibliothek Ws2_32.lib
DLL Ws2_32.dll

Weitere Informationen

WSAAsyncGetHostByAddr

WSAAsyncGetHostByName

WSAAsyncGetProtoByName

WSAAsyncGetProtoByNumber

WSAAsyncGetServByName

WSAAsyncGetServByPort

Winsock-Funktionen

Winsock-Referenz