BuildIoRingReadFile 関数 (ioringapi.h)

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

読み取り操作を実行する I/O リングへのハンドルを表す HIORING

fileRef

読み取るファイルを指定する IORING_HANDLE_REF

dataRef

ファイルを読み取るバッファーを指定する IORING_BUFFER_REF 。 指定されたバッファーのサイズは、少なくとも numberOfBytesToRead バイトである 必要があります。

numberOfBytesToRead

読み取るバイト数。

fileOffset

読み取りを開始するファイルへのオフセット。

userData

ファイルの読み取り操作を識別するUINT_PTR値。 BuildIoRingCancelRequest の呼び出しで操作を取り消すときに、この値を指定します。 アプリが操作のキャンセル動作を実装する場合、 userData 値は一意である必要があります。 それ以外の場合、値はシステムによって不透明として扱われ、0 を含む任意の値を指定できます。

sqeFlags

戻り値

次のような HRESULT を返しますが、これらに限定されません。

説明
S_OK Success
IORING_E_SUBMISSION_QUEUE_FULL 送信キューがいっぱいになり、追加のエントリをビルドできません。 アプリケーションは既存のエントリを送信し、一部のエントリが完了するまで待ってから、キューにさらに操作を追加する必要があります。
IORING_E_UNKNOWN_REQUIRED_FLAG アプリケーションは、実装に認識されない必須フラグを提供しました。 ライブラリ コードでは、GetIoRingInfo の呼び出しから取得したIORING_INFOIoRingVersion フィールドをチェックして、サポートされている操作とフラグを決定する I/O リングの API バージョンを決定する必要があります。 アプリケーションは、I/O リングの作成に使用したバージョンを認識している必要があるため、実行時にサポートされていないフラグを提供しないでください。

注釈

IsIoRingOpSupported を呼び出し、op パラメーターにIORING_OP_READを指定して、読み取りファイル操作の I/O リングのサポートを確認します。

要件

要件
サポートされている最小のクライアント Windows ビルド 22000
サポートされている最小のサーバー Windows ビルド 22000
Header ioringapi.h