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)

See also

FLT_CALLBACK_DATA

FLT_IO_PARAMETER_BLOCK

FLT_IS_FASTIO_OPERATION

FLT_IS_FS_FILTER_OPERATION

FLT_IS_IRP_OPERATION

FLT_PARAMETERS