BuildIoRingReadFile 函数 (ioringapi.h)

使用 I/O 环从文件执行异步读取。 此操作类似于调用 ReadFileEx

语法

HRESULT BuildIoRingReadFile(
  HIORING           ioRing,
  IORING_HANDLE_REF fileRef,
  IORING_BUFFER_REF dataRef,
  UINT32            numberOfBytesToRead,
  UINT64            fileOffset,
  UINT_PTR          userData,
  IORING_SQE_FLAGS  sqeFlags
);

参数

ioRing

表示将执行读取操作的 I/O 环句柄的 HIORING

fileRef

指定要读取的文件 IORING_HANDLE_REF

dataRef

一个IORING_BUFFER_REF,指定将文件读入其中的缓冲区。 提供的缓冲区的大小必须至少为 numberOfBytesToRead 字节。

numberOfBytesToRead

要读取的字节数。

fileOffset

文件中要开始读取的偏移量。

userData

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

sqeFlags

返回值

返回 HRESULT,包括但不限于以下内容:

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

注解

通过调用 IsIoRingOpSupported 并为 op 参数指定IORING_OP_READ,检查对读取文件操作的 I/O 通道支持。

要求

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