WinAPPCCancelAsyncRequest

WinAPPCCancelAsyncRequest 函数取消未完成的基于 WinAsyncAPPC 的请求。

语法

  
    int WINAPI WinAPPCCancelAsyncRequest(   
HANDLE hAsyncTaskID);  

参数

hAsyncTaskID
提供的参数。 指定要取消的异步任务。

返回值

返回值指定异步请求是否已取消。 如果值为零,则表示请求已取消。 否则,该值为下列值之一:

WAPPCINVALID
指示指定的异步任务标识符无效的错误代码。

WAPPCALREADY
指示正在取消的异步例程已完成的错误代码。

注解

以前通过发出 WinAsyncAPPCWinAsyncAPPCEx 或 WinAsyncAPPCIOCP 函数之一启动的异步任务可以在完成之前取消,方法是发出 WinAPPCCancelAsyncRequest 函数,并将异步任务标识符指定为 hAsyncTaskID 中初始函数返回的。

例如,如果未完成的谓词与会话 (相关, SEND_DATARECEIVE_AND_WAIT) ,则会清除该谓词并关闭会话。 如果谓词与 TP (相关,例如 ,RECEIVE_ALLOCATETP_STARTED) ,则 TP 结束。 在这两种情况下,虽然 实现会尽可能干净地关闭会话和会话,但它不会刷新发送缓冲区、等待确认等。 此调用是同步的,在完成上述处理后,会为取消的谓词发布完成消息。

如果尝试取消现有异步 WinAsyncAPPC 例程失败,错误代码为 WAPPCALREADY,则发生以下两种情况之一。 原始例程已完成,应用程序已处理生成的消息,或者原始例程已完成,结果消息仍在应用程序窗口队列中等待。