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)

See also

FLT_CALLBACK_DATA

FLT_IO_PARAMETER_BLOCK

FLT_IS_FASTIO_OPERATION

FLT_IS_FS_FILTER_OPERATION

FLT_IS_IRP_OPERATION

FLT_PARAMETERS