Funzione WSACancelAsyncRequest (winsock2.h)

La funzione WSACancelAsyncRequest annulla un'operazione asincrona incompleta.

Sintassi

int WSAAPI WSACancelAsyncRequest(
  [in] HANDLE hAsyncTaskHandle
);

Parametri

[in] hAsyncTaskHandle

Handle che specifica l'operazione asincrona da annullare.

Valore restituito

Il valore restituito da WSACancelAsyncRequest è zero se l'operazione è stata annullata correttamente. In caso contrario, viene restituito il valore SOCKET_ERROR e è possibile recuperare un numero di errore specifico chiamando WSAGetLastError.

Codice di errore Significato
WSANOTINITIALISED
Prima di usare questa funzione, è necessario che venga eseguita una chiamata WSAStartup riuscita.
WSAENETDOWN
Il sottosistema di rete non è riuscito.
WSAEINVAL
Indica che l'handle di attività asincrono specificato non è valido.
WSAEINPROGRESS
È in corso una chiamata di Windows Sockets 1.1 bloccante oppure il provider di servizi sta ancora elaborando una funzione di callback.
WSAEALREADY
La routine asincrona annullata è già stata completata.
 
Nota Non è chiaro se l'applicazione può distinguere in modo utile tra WSAEINVAL e WSAEALREADY, poiché in entrambi i casi l'errore indica che non è in corso alcuna operazione asincrona con l'handle indicato. Eccezione semplice: zero è sempre un handle di attività asincrono non valido. La specifica di Windows Sockets non stabilisce in che modo un provider Windows Sockets conforme deve distinguere tra i due casi. Per la massima portabilità, un'applicazione Windows Sockets deve considerare i due errori come equivalenti.
 

Commenti

La funzione WSACancelAsyncRequest viene usata per annullare un'operazione asincrona avviata da una delle funzioni WSAAsyncGetXByY , ad esempio WSAAsyncGetHostByName. L'operazione da annullare viene identificata dal parametro hAsyncTaskHandle , che deve essere impostato sull'handle di attività asincrono restituito dalla funzione WSAAsyncGetXByY di avvio.

Un tentativo di annullare un'operazione WSAAsyncGetXByY asincrona esistente può non riuscire con un codice di errore WSAEALREADY per due motivi. Innanzitutto, l'operazione originale è già stata completata e l'applicazione ha gestito il messaggio risultante. In secondo luogo, l'operazione originale è già stata completata, ma il messaggio risultante è ancora in attesa nella coda della finestra dell'applicazione.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winsock2.h (include Winsock2.h)
Libreria Ws2_32.lib
DLL Ws2_32.dll

Vedi anche

WSAAsyncGetHostByAddr

WSAAsyncGetHostByName

WSAAsyncGetProtoByName

WSAAsyncGetProtoByNumber

WSAAsyncGetServByName

WSAAsyncGetServByPort

Funzioni Winsock

Informazioni di riferimento su Winsock