KsWriteFile 関数 (ks.h)

KsWriteFile 関数は、指定したファイル オブジェクトに対して書き込みを実行します。 呼び出し元は、FO_SYNCHRONOUS_IO ファイル オブジェクトに対する操作のためにファイルへのアクセスをシリアル化していることを前提としています。 この関数は、可能であれば FastIoDispatch の使用を試みます。または、デバイス オブジェクトに対して書き込み要求を生成します。 関連するすべての統計が更新されます。

構文

KSDDKAPI NTSTATUS KsWriteFile(
  [in]           PFILE_OBJECT     FileObject,
  [in, optional] PKEVENT          Event,
  [in, optional] PVOID            PortContext,
  [out]          PIO_STATUS_BLOCK IoStatusBlock,
  [in]           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

状態情報を返す場所を示します。 これは、リクエスター モードに関係なく、常に有効なアドレスであると見なされます。

[in] Buffer

データの書き込み元のバッファーを指定します。 バッファーをプローブしてロックする必要がある場合は、 RequesterMode と共に例外ハンドラーが使用されます。

[in] Length

渡されるバッファーのサイズを指定します。

[in, optional] Key

必要に応じて、キーを格納します。存在しない場合は 0 を指定します。

[in] RequestorMode

生成する必要がある場合に読み取り IRP に配置するプロセッサ モードを示します。 また、バッファーをプローブしてロックする必要がある場合にも使用されます。 この変数は、高速 I/O 呼び出しを実行できるかどうかを決定します。 リクエスター モードが KernelMode ではなく、以前のモードであった場合は、高速 I/O を使用できません。

戻り値

KsWriteFile 関数は、成功した場合はSTATUS_SUCCESSを返し、アクションが保留中の場合はSTATUS_PENDING、失敗した場合は読み取りエラーを返します。

要件

要件
対象プラットフォーム ユニバーサル
Header ks.h (Ks.h を含む)
Library Ks.lib