IRP_MJ_MDL_READ_COMPLETE 联合的 FLT_PARAMETERS

FLT_IO_PARAMETER_BLOCK.MajorFunction 为 IRP_MJ_MDL_READ_COMPLETE 时,使用以下 FLT_PARAMETERS 联合成员。

语法

typedef union _FLT_PARAMETERS {
  ...    ;
  struct {
    PMDL MdlChain;
  } MdlReadComplete;
  ...    ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;

成员

  • MdlReadComplete:包含以下成员的结构。

  • MdlChain:指向一个变量的指针,该变量接收指向一个或多个内存描述符列表 (MDL) 链的指针,MDL 描述了包含要从缓存文件读取的数据的页面。

注解

IRP_MJ_MDL_READ_COMPLETE 是快速 I/O 操作。 它执行与 IRP_MJ_READ + IRP_MN_COMPLETE_MDL 相同的操作,但以下差异除外:

  • 如果在执行 MDL 工作之前文件还没有缓存,则基于 IRP 的操作会在文件上设置缓存。
  • 如果文件尚未缓存,则快速 IO 操作将失败。

IRP_MJ_MDL_READ_COMPLETE 操作的 FLT_PARAMETERS 结构包含快速 I/O MdlReadComplete 操作的参数。 此操作由回调数据 (FLT_CALLBACK_DATA) 结构表示,Iopb 指向 FLT_IO_PARAMETER_BLOCK 结构中的操作参数。

如果快速 IRP_MJ_MDL_READ_COMPLETE 请求失败,I/O 的发出者将决定如何重新发出请求。 例如,可以使用 IRP_MJ_READ + IRP_MN_COMPLETE_MDL 作为基于 IRP 的操作重新发出请求。

要求

要求类型 要求
头文件 Fltkernel.h(包括 Fltkernel.h

另请参阅

FLT_CALLBACK_DATA

FLT_IO_PARAMETER_BLOCK

FLT_IS_FASTIO_OPERATION

FLT_IS_FS_FILTER_OPERATION

FLT_IS_IRP_OPERATION

FLT_PARAMETERS