使用 I/O 通道从文件执行异步读取。 此作类似于调用 ReadFileEx。
Syntax
HRESULT BuildIoRingReadFile(
  HIORING           ioRing,
  IORING_HANDLE_REF fileRef,
  IORING_BUFFER_REF dataRef,
  UINT32            numberOfBytesToRead,
  UINT64            fileOffset,
  UINT_PTR          userData,
  IORING_SQE_FLAGS  sqeFlags
);
参数
ioRing
一个 HIORING ,表示将执行读取作的 I/O 环的句柄。
fileRef
指定要读取的文件 的IORING_HANDLE_REF 。
dataRef
指定读取文件的缓冲区的 IORING_BUFFER_REF 。 提供的缓冲区的大小必须至少为 numberOfBytesToRead 字节。
numberOfBytesToRead
要读取的字节数。
fileOffset
要开始读取的文件的偏移量。
userData
标识文件读取作的UINT_PTR值。 使用对 BuildIoRingCancelRequest 的调用取消作时指定此值。 如果应用为作实现取消行为, 则 userData 值必须是唯一的。 否则,该值被系统视为不透明,可以是任何内容,包括 0。
sqeFlags
返回值
返回 HRESULT,包括但不限于以下内容:
| 价值 | Description | 
|---|---|
| S_OK | 成功 | 
| IORING_E_SUBMISSION_QUEUE_FULL | 提交队列已满,没有其他条目可供生成。 应用程序必须提交现有条目,并等待其中一些条目完成,然后再向队列添加更多作。 | 
| IORING_E_UNKNOWN_REQUIRED_FLAG | 应用程序提供了一个对实现未知的必需标志。 库代码应检查从调用 GetIoRingInfo 获取的IORING_INFO的 IoRingVersion 字段,以确定 I/O 通道的 API 版本,该通道确定支持的作和标志。 应用程序应知道用于创建 I/O 圈的版本,因此不应在运行时提供不受支持的标志。 | 
注解
通过调用 IsIoRingOpSupported 并为作参数指定IORING_OP_READ来检查 I/O 圈对读取文件作的支持。
要求
| Requirement | 价值 | 
|---|---|
| 最低支持的客户端 | Windows 内部版本 22000 | 
| 支持的最低服务器 | Windows 内部版本 22000 | 
| Header | ioringapi.h | 
| Library | kernel32。自由 |