FLT_PARAMETERS for IRP_MJ_MDL_READ union
The following union component is used when the MajorFunction field of the FLT_IO_PARAMETER_BLOCK structure for the operation is IRP_MJ_MDL_READ.
Syntax
typedef union _FLT_PARAMETERS {
... ;
struct {
LARGE_INTEGER FileOffset;
ULONG POINTER_ALIGNMENT Length;
ULONG POINTER_ALIGNMENT Key;
PMDL *MdlChain;
} MdlRead;
... ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;
Members
MdlRead: Structure containing the following members.
FileOffset: Starting byte within the cached file.
Length: Length, in bytes, of the data to be read from the cached file.
Key: Key value associated with a byte-range lock on the target file. If the range to be read overlaps or is a subrange of an exclusively locked range within the file, this parameter must be the key for that exclusive lock. The exclusive lock must be held by the parent process of the calling thread; otherwise, this parameter is ignored.
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 to be read.
Remarks
The FLT_PARAMETERS structure for IRP_MJ_MDL_READ operations contains the parameters for a fast I/O MdlRead operation represented by a callback data (FLT_CALLBACK_DATA) structure. It is contained in an FLT_IO_PARAMETER_BLOCK structure.
If a fast I/O IRP_MJ_MDL_READ request fails, the issuer of the I/O determines how to reissue the request. A minifilter may not always get an IRP-based IRP_MJ_MDL_READ. For instance, the IRP request could be reissued as IRP_MJ_READ/IRP_MN_MDL.
IRP_MJ_MDL_READ is a fast I/O operation.
Requirements
Requirement type | Requirement |
---|---|
Header | Fltkernel.h (include Fltkernel.h) |
See also
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for