FLT_PARAMETERS for IRP_MJ_MDL_WRITE_COMPLETE union
The following FLT_PARAMETERS union member is used when FLT_IO_PARAMETER_BLOCK.MajorFunction is IRP_MJ_MDL_WRITE_COMPLETE.
Syntax
typedef union _FLT_PARAMETERS {
... ;
struct {
LARGE_INTEGER FileOffset;
PMDL MdlChain;
} MdlWriteComplete;
... ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;
Members
MdlWriteComplete: Structure containing the following members.
FileOffset: Starting byte within the cached file.
MdlChain: Pointer to a variable that receives a pointer to a chain of one or more memory descriptor lists (MDL) that describe the pages containing the data that was to be written to the cached file.
Remarks
IRP_MJ_MDL_WRITE_COMPLETE is a fast I/O operation. It does the same thing as IRP_MJ_WRITE + IRP_MN_COMPLETE_MDL except for the following difference:
- The IRP-based operation sets up caching on the file if it isn’t already cached before doing the MDL work.
- The Fast IO operation fails if the file isn’t already cached.
The FLT_PARAMETERS structure for IRP_MJ_MDL_WRITE_COMPLETE operations contains the parameters for a fast I/O MdlWriteComplete operation. This operation is represented by a callback data (FLT_CALLBACK_DATA) structure, with the operation's parameters in the FLT_IO_PARAMETER_BLOCK structure that Iopb points to.
If a fast I/O IRP_MJ_MDL_WRITE_COMPLETE request fails, the issuer of the I/O determines how to reissue the request. For instance, the request could be reissued as an IRP-based operation using IRP_MJ_WRITE + IRP_MN_COMPLETE_MDL.
Requirements
Requirement type | Requirement |
---|---|
Header | Fltkernel.h (include Fltkernel.h) |