次の方法で共有


BuildIoRingRegisterFileHandles 関数 (ioringapi.h)

今後の 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_INFOIoRingVersion フィールドを調べて、サポートされている操作とフラグを決定する I/O リングの API バージョンを決定する必要があります。 アプリケーションは、I/O リングの作成に使用したバージョンを認識している必要があるため、実行時にサポートされていないフラグを提供しないでください。

注釈

この関数を使用すると、カーネルの実装で検証と内部マッピングを 1 回だけ実行できるため、各 I/O 操作のオーバーヘッドを回避できます。 送信キュー内の後続のエントリは、配列に整数インデックスを使用して、この関数に登録されているハンドルを参照できます。 以前の登録が存在する場合は、以前の登録が完全に置き換えられます。

Requirements

Requirement 価値
サポートされる最小クライアント Windows ビルド 22000
サポートされている最小のサーバー Windows ビルド 22000
Header ioringapi.h
Library kernel32。Lib