WSACancelAsyncRequest 函数 (winsock.h)

WSACancelAsyncRequest 函数取消不完整的异步操作。

语法

int WSACancelAsyncRequest(
  [in] HANDLE hAsyncTaskHandle
);

参数

[in] hAsyncTaskHandle

指定要取消的异步操作的句柄。

返回值

如果成功取消操作, 则 WSACancelAsyncRequest 返回的值为零。 否则,将返回值 SOCKET_ERROR,并且可以通过调用 WSAGetLastError 来检索特定的错误号。

错误代码 含义
WSANOTINITIALISED
在使用此函数之前,必须成功调用 WSAStartup
WSAENETDOWN
网络子系统失败。
WSAEINVAL
指示指定的异步任务句柄无效。
WSAEINPROGRESS
阻止 Windows Sockets 1.1 调用正在进行,或者服务提供程序仍在处理回调函数。
WSAEALREADY
正在取消的异步例程已完成。
 
注意 目前还不清楚应用程序能否有效地区分 WSAEINVALWSAEALREADY,因为在这两种情况下,错误都表明没有使用所指示的句柄进行异步操作。 (普通异常:零始终是无效的异步任务句柄。) Windows 套接字规范没有规定一致的 Windows 套接字提供程序应如何区分这两种情况。 为了获得最大的可移植性,Windows 套接字应用程序应将这两个错误视为等效的错误。
 

注解

WSACancelAsyncRequest 函数用于取消由 WSAAsyncGetXByY 函数之一(如 WSAAsyncGetHostByName)启动异步操作。 要取消的操作由 hAsyncTaskHandle 参数标识,该参数应设置为启动 的 WSAAsyncGetXByY 函数返回的异步任务句柄。

尝试取消现有 异步 WSAAsyncGetXByY 操作可能会失败,错误代码为 WSAEALREADY ,原因有两个。 首先,原始操作已完成,应用程序已处理生成的消息。 其次,原始操作已完成,但生成的消息仍在应用程序窗口队列中等待。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 winsock.h (包括 Winsock2.h)
Library Ws2_32.lib
DLL Ws2_32.dll

另请参阅

WSAAsyncGetHostByAddr

WSAAsyncGetHostByName

WSAAsyncGetProtoByName

WSAAsyncGetProtoByNumber

WSAAsyncGetServByName

WSAAsyncGetServByPort

Winsock 函数

Winsock 参考