Partager via


Fonction WSACancelAsyncRequest (winsock2.h)

La fonction WSACancelAsyncRequest annule une opération asynchrone incomplète.

Syntaxe

int WSAAPI WSACancelAsyncRequest(
  [in] HANDLE hAsyncTaskHandle
);

Paramètres

[in] hAsyncTaskHandle

Handle qui spécifie l’opération asynchrone à annuler.

Valeur retournée

La valeur retournée par WSACancelAsyncRequest est zéro si l’opération a été annulée avec succès. Sinon, la valeur SOCKET_ERROR est retournée et un numéro d’erreur spécifique peut être récupéré en appelant WSAGetLastError.

Code d'erreur Signification
WSANOTINITIALISED
Un appel WSAStartup réussi doit se produire avant d’utiliser cette fonction.
WSAENETDOWN
Le sous-système réseau a échoué.
WSAEINVAL
Indique que le handle de tâche asynchrone spécifié n’était pas valide.
WSAEINPROGRESS
Un appel bloquant Windows Sockets 1.1 est en cours ou le fournisseur de services traite toujours une fonction de rappel.
WSAEALREADY
La routine asynchrone en cours d’annulation est déjà terminée.
 
Note Il n’est pas clair si l’application peut faire utilement la distinction entre WSAEINVAL et WSAEALREADY, car dans les deux cas, l’erreur indique qu’aucune opération asynchrone n’est en cours avec le handle indiqué. (Exception triviale : zéro est toujours un handle de tâche asynchrone non valide.) La spécification des sockets Windows ne spécifie pas comment un fournisseur de sockets Windows conforme doit faire la distinction entre les deux cas. Pour une portabilité maximale, une application Windows Sockets doit traiter les deux erreurs comme équivalentes.
 

Remarques

La fonction WSACancelAsyncRequest est utilisée pour annuler une opération asynchrone lancée par l’une des fonctions WSAAsyncGetXByY telles que WSAAsyncGetHostByName. L’opération à annuler est identifiée par le paramètre hAsyncTaskHandle , qui doit être défini sur le handle de tâche asynchrone tel que retourné par la fonction WSAAsyncGetXByY à l’origine .

Une tentative d’annulation d’une opération WSAAsyncGetXByY asynchrone existante peut échouer avec un code d’erreur WSAEALREADY pour deux raisons. Tout d’abord, l’opération d’origine est déjà terminée et l’application a traité le message résultant. Deuxièmement, l’opération d’origine est déjà terminée, mais le message résultant est toujours en attente dans la file d’attente de la fenêtre d’application.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête winsock2.h (inclure Winsock2.h)
Bibliothèque Ws2_32.lib
DLL Ws2_32.dll

Voir aussi

WSAsyncGetHostByAddr

WSAsyncGetHostByName

WSAsyncGetProtoByName

WSAsyncGetProtoByNumber

WSAsyncGetServByName

WSAsyncGetServByPort

Fonctions Winsock

Informations de référence sur Winsock