向系統註冊緩衝區陣列,以便進行未來的 I/O 通道作業。
語法
HRESULT BuildIoRingRegisterBuffers(
HIORING ioRing,
UINT32 count,
IORING_BUFFER_INFO const [] buffers,
UINT_PTR userData
);
參數
ioRing
HIORING 代表已註冊緩衝區之 I/O 環的控制碼。
count
指定 buffers 參數中提供的緩衝區數目的 UINT32。
buffers
代表要註冊的緩衝區的 IORING_BUFFER_INFO 結構陣列。
userData
識別註冊作業的UINT_PTR值。 使用呼叫 BuildIoRingCancelRequest 來取消作業時,請指定此值。 如果應用程式實作作業的取消行為,則 userData 值必須是唯一的。 否則,系統會將值視為不透明,而且可以是任何值,包括 0。
返回值
傳回 HRESULT,包括但不限於下列項目:
| 價值觀 | Description |
|---|---|
| S_OK | 成功 |
| IORING_E_SUBMISSION_QUEUE_FULL | 提交佇列已滿,且無法建置其他項目。 應用程式必須提交現有項目,並等待其中一些項目完成,然後才能將更多作業新增至佇列。 |
| IORING_E_UNKNOWN_REQUIRED_FLAG | 應用程式提供實作不知道的必要旗標。 程式庫程式代碼應該檢查從呼叫 GetIoRingInfo 取得的IORING_INFO的 IoRingVersion 欄位,以判斷 I/O 通道的 API 版本,以判斷支援的作業和旗標。 應用程式應該知道用來建立 I/O 通道的版本,因此不應該在執行階段提供不支援的旗標。 |
備註
此函式可讓核心實作只執行一次驗證和內部對映,避免每個 I/O 作業的額外負荷。 提交佇列中的後續項目可能會參考使用整數索引到陣列中向此函數註冊的緩衝區。 如果存在先前的註冊,則會完全取代先前的註冊。 陣列中 位址為 NULL 且 長度 為 0 的任何項目都是稀疏項目,不會使用。 這可讓您釋放一或多個先前註冊的緩衝區。
需求
| Requirement | 價值觀 |
|---|---|
| 最低支援的用戶端 | Windows 內部版本 22000 |
| 支援的最低伺服器 | Windows 內部版本 22000 |
| Header | ioringapi.h |
| Library | 內核32。圖書館 |