BuildIoRingCancelRequest 函数 (ioringapi.h)

尝试取消以前提交的 I/O 环操作。

语法

HRESULT BuildIoRingCancelRequest(
  HIORING           ioRing,
  IORING_HANDLE_REF file,
  UINT_PTR          opToCancel,
  UINT_PTR          userData
);

参数

ioRing

表示请求取消的 I/O 环的句柄的 HIORING

file

表示与要取消的操作关联的文件的 IORING_HANDLE_REF

opToCancel

指定要取消的操作 的UINT_PTR 。 此值与注册操作时 userData 参数中提供的值相同。 若要支持取消, userData 值对于每个操作都必须是唯一的。

userData

标识取消操作的UINT_PTR值。 通过调用 BuildIoRingCancelRequest 取消操作时指定此值。 如果应用实现操作的取消行为, 则 userData 值必须是唯一的。 否则,系统会将该值视为不透明值,可以是任何值,包括 0。

返回值

说明
S_OK 成功
IORING_E_SUBMISSION_QUEUE_FULL 提交队列已满,无法生成其他条目。 应用程序必须提交现有条目,并等待其中一些条目完成,然后才能将更多操作添加到队列。
IORING_E_UNKNOWN_REQUIRED_FLAG 应用程序提供了实现不知道的必需标志。 库代码应检查从调用 GetIoRingInfo 获取IORING_INFO的 IoRingVersion 字段,以确定 I/O 环的 API 版本,该版本确定支持的操作和标志。 应用程序应知道用于创建 I/O 环的版本,因此不应在运行时提供不支持的标志。

注解

由于 I/O 环操作是异步执行的,因此此函数调用只是取消请求。 指定的操作可能会在处理取消之前完成。 取消操作可能会在取消操作完成后完成。 取消操作的完成不依赖于它取消的 I/O 操作的实际完成。 应用应通过调用 PopIoRingCompletion 来观察操作的最终状态,在完成队列中查找原始操作的完成情况。 操作可能已成功完成或出现错误,而不是被调用此函数取消。

要求

要求
最低受支持的客户端 Windows 内部版本 22000
最低受支持的服务器 Windows 内部版本 22000
标头 ioringapi.h