Condividi tramite


Funzione WSACancelAsyncRequest (winsock.h)

La funzione WSACancelAsyncRequest annulla un'operazione asincrona incompleta.

Sintassi

int 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, il valore SOCKET_ERROR viene restituito e un numero di errore specifico può essere recuperato chiamando WSAGetLastError.

Codice di errore Significato
WSANOTINITIALISED
Prima di usare questa funzione, è necessario eseguire una chiamata WSAStartup riuscita.
WSAENETDOWN
Il sottosistema di rete non è riuscito.
WSAEINVAL
Indica che l'handle attività asincrono specificato non è valido.
WSAEINPROGRESS
Una chiamata windows Sockets 1.1 bloccata è in corso 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 esiste alcuna operazione asincrona in corso con l'handle indicato. (Eccezione semplice: zero è sempre un handle di attività asincrono non valido. La specifica di Windows Sockets non specifica come un provider Windows Sockets conforme deve distinguere tra i due casi. Per la portabilità massima, 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 attività asincrono restituito dalla funzione WSAAsyncGetXByY .

Un tentativo di annullare un'operazione WSAAsyncGetXByY esistente può non riuscire con un codice di errore di WSAEALREADY per due motivi. Prima di tutto, l'operazione originale è già stata completata e l'applicazione ha trattato 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 winsock.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