RpcCancelThread 函数 (rpcdce.h)
RpcCancelThread 函数取消线程。 RpcCancelThread 函数不应用于取消异步 RPC 调用;相反,请使用 RpcAsyncCancelCall 函数取消异步 RPC 调用。
语法
RPC_STATUS RpcCancelThread(
void *Thread
);
parameters
Thread
要取消的线程的句柄。
返回值
值 | 含义 |
---|---|
|
调用成功。 |
|
线程句柄没有权限。 线程句柄必须正确设置THREAD_SET_CONTEXT,函数才能正确执行。 |
|
由 MS-DOS 或 Windows 3.x 客户端调用。 |
注解
RpcCancelThread 函数允许一个客户端线程取消另一个客户端线程上正在进行的 RPC。 调用函数时,服务器运行时会通知取消操作。 服务器存根可以通过调用 RpcTestCancel 来确定调用是否已取消。 如果已取消调用,则服务器存根应清理并将控制权返回给客户端。
RpcCancelThread 函数不能用于取消发出静态回调的调用。 不要取消可能调用使用 IDL 文件中 的 [callback] 属性声明的函数的远程过程调用。
默认情况下,客户端将永远等待服务器在取消后返回控制权。 若要减少此时间,请调用 RpcMgmtSetCancelTimeout,指定等待响应的秒数。 如果服务器在此间隔内未返回,则调用在客户端失败,并 出现RPC_S_CALL_FAILED 异常。 服务器存根继续运行。
如果使用命名管道协议 (ncacn_np),则必须指定有限超时。
可以将 RpcCancelThread 与任何面向连接的协议 (ncacn_*) 以及 除 ncadg_mq 和 ncalrpc 以外的任何数据报协议一起使用。
注意 Windows XP/2000 RpcCancelThread 函数不适用于 ncacn_http。 RpcCancelThread 函数支持在 Windows Server 2003 或更高版本操作系统和 Windows XP 上使用 Service Pack 1 (SP1) 及更高版本上的ncacn_http。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | rpcdce.h (包括 Rpc.h) |
Library | Rpcrt4.lib |
DLL | Rpcrt4.dll |