WSACancelAsyncRequest 函数 (winsock.h)
WSACancelAsyncRequest 函数取消不完整的异步操作。
语法
int WSACancelAsyncRequest(
[in] HANDLE hAsyncTaskHandle
);
参数
[in] hAsyncTaskHandle
指定要取消的异步操作的句柄。
返回值
如果成功取消操作, 则 WSACancelAsyncRequest 返回的值为零。 否则,将返回值 SOCKET_ERROR,并且可以通过调用 WSAGetLastError 来检索特定的错误号。
错误代码 | 含义 |
---|---|
在使用此函数之前,必须成功调用 WSAStartup 。 | |
网络子系统失败。 | |
指示指定的异步任务句柄无效。 | |
阻止 Windows Sockets 1.1 调用正在进行,或者服务提供程序仍在处理回调函数。 | |
正在取消的异步例程已完成。 |
注意 目前还不清楚应用程序能否有效地区分 WSAEINVAL 和 WSAEALREADY,因为在这两种情况下,错误都表明没有使用所指示的句柄进行异步操作。 (普通异常:零始终是无效的异步任务句柄。) 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 |