Compartir a través de


Función WSACancelAsyncRequest (winsock.h)

La función WSACancelAsyncRequest cancela una operación asincrónica incompleta.

Sintaxis

int WSACancelAsyncRequest(
  [in] HANDLE hAsyncTaskHandle
);

Parámetros

[in] hAsyncTaskHandle

Identificador que especifica la operación asincrónica que se va a cancelar.

Valor devuelto

El valor devuelto por WSACancelAsyncRequest es cero si la operación se canceló correctamente. De lo contrario, se devuelve el valor SOCKET_ERROR y se puede recuperar un número de error específico llamando a WSAGetLastError.

Código de error Significado
WSANOTINITIALISED
Debe producirse una llamada de WSAStartup correcta antes de usar esta función.
WSAENETDOWN
Error en el subsistema de red.
WSAEINVAL
Indica que el identificador de tarea asincrónico especificado no era válido.
WSAEINPROGRESS
Una llamada de Bloqueo de Windows Sockets 1.1 está en curso o el proveedor de servicios sigue procesando una función de devolución de llamada.
WSAEALREADY
La rutina asincrónica que se va a cancelar ya se ha completado.
 
Nota No está claro si la aplicación puede distinguir útilmente entre WSAEINVAL y WSAEALREADY, ya que en ambos casos, el error indica que no hay ninguna operación asincrónica en curso con el identificador indicado. (Excepción trivial: cero siempre es un identificador de tarea asincrónico no válido). La especificación de Windows Sockets no prescribe cómo un proveedor de Windows Sockets conforme debe distinguir entre los dos casos. Para la portabilidad máxima, una aplicación de Windows Sockets debe tratar los dos errores como equivalentes.
 

Comentarios

La función WSACancelAsyncRequest se usa para cancelar una operación asincrónica iniciada por una de las funciones WSAAsyncGetXByY , como WSAAsyncGetHostByName. La operación que se va a cancelar se identifica mediante el parámetro hAsyncTaskHandle , que se debe establecer en el identificador de tarea asincrónico tal como lo devuelve la función WSAAsyncGetXByY iniciada.

Un intento de cancelar una operación WSAAsyncGetXByY asincrónica existente puede producir un error con un código de error de WSAEALREADY por dos motivos. En primer lugar, la operación original ya se ha completado y la aplicación ha tratado el mensaje resultante. En segundo lugar, la operación original ya se ha completado, pero el mensaje resultante sigue esperando en la cola de la ventana de la aplicación.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winsock.h (incluya Winsock2.h)
Library Ws2_32.lib
Archivo DLL Ws2_32.dll

Consulte también

WSAAsyncGetHostByAddr

WSAAsyncGetHostByName

WSAAsyncGetProtoByName

WSAAsyncGetProtoByNumber

WSAAsyncGetServByName

WSAAsyncGetServByPort

Funciones winsock

Referencia de Winsock