CancelSynchronousIo 函数
将指定线程发出的挂起同步 I/O 操作标记为已取消。
语法
BOOL WINAPI CancelSynchronousIo(
_In_ HANDLE hThread
);
参数
hThread[in]
线程的句柄。
返回值
如果该函数成功,则返回值为非零值。
如果函数失败,则返回值为 0 (零) 。 若要获取扩展错误信息,请调用 GetLastError 函数。
如果此函数找不到取消请求,则返回值为 0 (零) , GetLastError 返回 ERROR_NOT_FOUND。
备注
调用方必须具有 THREAD_TERMINATE 访问权限。
如果指定线程有任何挂起的 I/O 操作正在进行中, 则 CancelSynchronousIo 函数将其标记为取消。 大多数类型的操作都可以立即取消;其他操作可以在实际取消并通知调用方之前继续完成。 CancelSynchronousIo 函数不会等待所有取消的操作完成。 有关详细信息,请参阅 I/O 完成/取消指南。
正在取消的操作以三种状态之一完成:必须检查完成状态才能确定完成状态。 这三种状态为:
- 操作正常完成。 即使已取消操作,也会发生这种情况,因为取消请求可能尚未及时提交以取消操作。
- 该操作已取消。 GetLastError 函数返回ERROR_OPERATION_ABORTED。
- 操作失败,出现另一个错误。 GetLastError 函数返回相关的错误代码。
在Windows 8和Windows Server 2012中,以下技术支持此功能。
技术 | 支持 |
---|---|
服务器消息块 (SMB) 3.0 协议 | 是 |
SMB 3.0 透明故障转移 (TFO) | 是 |
具有横向扩展文件共享的 SMB 3.0 (SO) | 是 |
群集共享卷文件系统 (CsvFS) | 是 |
弹性文件系统 (ReFS) | 是 |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
标头 | IoAPI.h (包括 Windows.h) ; Windows Server 2008 R2、Windows 7、Windows Server 2008 和 Windows Vista 上的 WinBase.h (包括 Windows.h) |
库 | Kernel32.lib |
DLL | Kernel32.dll |