FLT_PARAMETERS for IRP_MJ_MDL_READ_COMPLETE union
The following FLT_PARAMETERS union member is used when FLT_IO_PARAMETER_BLOCK.MajorFunction is IRP_MJ_MDL_READ_COMPLETE.
Syntax
typedef union _FLT_PARAMETERS {
... ;
struct {
PMDL MdlChain;
} MdlReadComplete;
... ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;
Members
MdlReadComplete: Structure containing the following members.
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 read from the cached file.
Remarks
IRP_MJ_MDL_READ_COMPLETE is a fast I/O operation. It does the same thing as IRP_MJ_READ + 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_READ_COMPLETE operations contains the parameters for a fast I/O MdlReadComplete operation. The operation is represented by a (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_READ_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_READ + IRP_MN_COMPLETE_MDL.
Requirements
Requirement type | Requirement |
---|---|
Header | Fltkernel.h (include Fltkernel.h) |