IRP_MJ_MDL_WRITE_COMPLETE 共用体の FLT_PARAMETERS
FLT_IO_PARAMETER_BLOCK.MajorFunction が IRP_MJ_MDL_WRITE_COMPLETE の時に次の FLT_PARAMETERS 共用体メンバーが使用されます。
構文
typedef union _FLT_PARAMETERS {
... ;
struct {
LARGE_INTEGER FileOffset;
PMDL MdlChain;
} MdlWriteComplete;
... ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;
メンバー
MdlWriteComplete: 次のメンバーが含まれる構造体。
FileOffset: キャッシュされたファイル内の開始バイト。
MdlChain: キャッシュされたファイルに書き込まれるデータを含むページを記述する 1 つ以上のメモリ記述子リスト (MDL) のチェーンへのポインターを受け取る変数へのポインター。
解説
IRP_MJ_MDL_WRITE_COMPLETE は高速 I/O 操作です。 これは、次の違いを除いて IRP_MJ_WRITE + IRP_MN_COMPLETE_MDL と同じことを行います。
- IRP ベースの操作は、MDL 作業を行う前にまだキャッシュされていない場合は、ファイルのキャッシュを設定します。
- ファイルがまだキャッシュされていない場合、高速 IO 操作は失敗します。
IRP_MJ_MDL_WRITE_COMPLETE 操作の FLT_PARAMETERS 構造体には、高速 I/O MdlWriteComplete 操作のパラメーターが含まれています。 操作はコールバック データ (FLT_CALLBACK_DATA) 構造体で表され、操作のパラメーターは Iopb が指す FLT_IO_PARAMETER_BLOCK 構造体にあります。
高速 I/O IRP_MJ_MDL_WRITE_COMPLETE 要求が失敗した場合、I/O の発行者は要求の再発行方法を決定します。 たとえば、IRP_MJ_WRITE + IRP_MN_COMPLETE_MDLを使用して、IRP ベースの操作として要求を再発行できます。
要件
要件タイプ | 要件 |
---|---|
ヘッダー | Fltkernel.h (Fltkernel.h を含む) |