使用 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
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 並指定 op 參數的IORING_OP_READ,以檢查讀取檔案作業的 I/O 通道支援。
需求
| Requirement | 價值觀 |
|---|---|
| 最低支援的用戶端 | Windows 內部版本 22000 |
| 支援的最低伺服器 | Windows 內部版本 22000 |
| Header | ioringapi.h |
| Library | 內核32。圖書館 |