今後の I/O リング操作のために、ファイル ハンドルの配列をシステムに登録します。
構文
HRESULT BuildIoRingRegisterFileHandles(
HIORING ioRing,
UINT32 count,
HANDLE const [] handles,
UINT_PTR userData
);
パラメーター
ioRing
ファイル ハンドルが登録されている I/O リングへのハンドルを表す HIORING 。
count
handles パラメーターに指定されたハンドルの数を指定する UINT32。
handles
登録する HANDLE 値の配列。
userData
登録操作を識別するUINT_PTR値。 BuildIoRingCancelRequest の呼び出しで操作を取り消すときに、この値を指定します。 アプリが操作のキャンセル動作を実装する場合、 userData 値は一意である必要があります。 それ以外の場合、値はシステムによって不透明として扱われ、0 を含む任意の値を指定できます。
戻り値
次を含む HRESULT を返しますが、これらに限定されません。
| 価値 | Description |
|---|---|
| S_OK | Success |
| IORING_E_SUBMISSION_QUEUE_FULL | 送信キューがいっぱいで、追加のエントリをビルドできません。 アプリケーションは、既存のエントリを送信し、一部のエントリが完了するのを待ってから、キューにさらに操作を追加する必要があります。 |
| IORING_E_UNKNOWN_REQUIRED_FLAG | アプリケーションは、実装に認識されない必要なフラグを提供しました。 ライブラリ コードでは、GetIoRingInfo の呼び出しから取得したIORING_INFOの IoRingVersion フィールドを調べて、サポートされている操作とフラグを決定する I/O リングの API バージョンを決定する必要があります。 アプリケーションは、I/O リングの作成に使用したバージョンを認識している必要があるため、実行時にサポートされていないフラグを提供しないでください。 |
注釈
この関数を使用すると、カーネルの実装で検証と内部マッピングを 1 回だけ実行できるため、各 I/O 操作のオーバーヘッドを回避できます。 送信キュー内の後続のエントリは、配列に整数インデックスを使用して、この関数に登録されているハンドルを参照できます。 以前の登録が存在する場合は、以前の登録が完全に置き換えられます。
Requirements
| Requirement | 価値 |
|---|---|
| サポートされる最小クライアント | Windows ビルド 22000 |
| サポートされている最小のサーバー | Windows ビルド 22000 |
| Header | ioringapi.h |
| Library | kernel32。Lib |