KsReadFile 関数 (ks.h)
KsReadFile 関数は、指定したファイル オブジェクトに対して読み取りを実行します。 呼び出し元が、FO_SYNCHRONOUS_IO ファイル オブジェクトに対する操作のためにファイルへのアクセスをシリアル化していることを前提としています。 この関数は、可能であれば FastIoDispatch の使用を試みるか、デバイス オブジェクトに対して読み取り要求を生成します。 関連するすべての統計が更新されます。
構文
KSDDKAPI NTSTATUS KsReadFile(
[in] PFILE_OBJECT FileObject,
[in, optional] PKEVENT Event,
[in, optional] PVOID PortContext,
[out] PIO_STATUS_BLOCK IoStatusBlock,
[out] PVOID Buffer,
[in] ULONG Length,
[in, optional] ULONG Key,
[in] KPROCESSOR_MODE RequestorMode
);
パラメーター
[in] FileObject
読み取りを実行するファイル オブジェクトを指定します。
[in, optional] Event
必要に応じて、読み取りで使用するイベントを格納します。 イベントが渡されない場合、呼び出しは同期ファイル オブジェクト上にあると見なされます。 そうでない場合、呼び出し元はファイル オブジェクトのイベントを待機しているか、非同期的に完了している可能性があります。 同期 I/O 用にファイルが開かれている場合、これは NULL である必要があります。 変数を使用する場合は、オブジェクト マネージャーによって割り当てられたイベントである必要があります。
[in, optional] PortContext
必要に応じて、完了ポートのコンテキスト情報を格納します。
[out] IoStatusBlock
状態情報を返すアドレスを指定します。 これは、リクエスター モードに関係なく、常に有効なアドレスであると見なされます。
[out] Buffer
データを読み取るバッファーを指定します。 バッファーをプローブしてロックする必要がある場合は、 RequesterMode と共に例外ハンドラーが使用されます。
[in] Length
渡されるバッファーのサイズを指定します。
[in, optional] Key
必要に応じて、キーが含まれます。存在しない場合は 0
[in] RequestorMode
生成する必要がある場合に読み取り IRP に配置するプロセッサ モードを示します。 また、バッファーをプローブしてロックする必要がある場合にも使用されます。 この変数は、高速 I/O 呼び出しを実行できるかどうかを決定します。 リクエスター モードが KernelMode ではなく、以前のモードであった場合は、高速 I/O を使用できません。
戻り値
KsReadFile 関数は、成功した場合はSTATUS_SUCCESSを返し、アクションが保留中の場合はSTATUS_PENDING、失敗した場合は読み取りエラーを返します。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | ks.h (Ks.h を含む) |
Library | Ks.lib |