WinAPPCCancelAsyncRequest
WinAPPCCancelAsyncRequest 函数取消未完成的基于 WinAsyncAPPC 的请求。
语法
int WINAPI WinAPPCCancelAsyncRequest(
HANDLE hAsyncTaskID);
参数
hAsyncTaskID
提供的参数。 指定要取消的异步任务。
返回值
返回值指定异步请求是否已取消。 如果值为零,则表示请求已取消。 否则,该值为下列值之一:
WAPPCINVALID
指示指定的异步任务标识符无效的错误代码。
WAPPCALREADY
指示正在取消的异步例程已完成的错误代码。
注解
以前通过发出 WinAsyncAPPC、WinAsyncAPPCEx 或 WinAsyncAPPCIOCP 函数之一启动的异步任务可以在完成之前取消,方法是发出 WinAPPCCancelAsyncRequest 函数,并将异步任务标识符指定为 hAsyncTaskID 中初始函数返回的。
例如,如果未完成的谓词与会话 (相关, SEND_DATA 或 RECEIVE_AND_WAIT) ,则会清除该谓词并关闭会话。 如果谓词与 TP (相关,例如 ,RECEIVE_ALLOCATE 或 TP_STARTED) ,则 TP 结束。 在这两种情况下,虽然 实现会尽可能干净地关闭会话和会话,但它不会刷新发送缓冲区、等待确认等。 此调用是同步的,在完成上述处理后,会为取消的谓词发布完成消息。
如果尝试取消现有异步 WinAsyncAPPC 例程失败,错误代码为 WAPPCALREADY,则发生以下两种情况之一。 原始例程已完成,应用程序已处理生成的消息,或者原始例程已完成,结果消息仍在应用程序窗口队列中等待。