IRP_MJ_MDL_READ union 的FLT_PARAMETERS

当操作的FLT_IO_PARAMETER_BLOCK结构的 MajorFunction 字段IRP_MJ_MDL_READ时,使用以下联合组件。

语法

typedef union _FLT_PARAMETERS {
  ...    ;
  struct {
    LARGE_INTEGER           FileOffset;
    ULONG POINTER_ALIGNMENT Length;
    ULONG POINTER_ALIGNMENT Key;
    PMDL                    *MdlChain;
  } MdlRead;
  ...    ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;

成员

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

  • FileOffset:缓存文件中的起始字节。

  • Length:要从缓存文件读取的数据的长度(以字节为单位)。

  • :与目标文件上的字节范围锁关联的键值。 如果要读取的区域重叠或是文件中独占锁定范围的子范围,则此参数必须是该独占锁的键。 独占锁必须由调用线程的父进程持有;否则,将忽略此参数。

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

注解

IRP_MJ_MDL_READ 操作的FLT_PARAMETERS结构包含由回调数据 (FLT_CALLBACK_DATA) 结构表示快速 I/O MdlRead 操作的参数。 它包含在FLT_IO_PARAMETER_BLOCK结构中。

如果快速 I/O IRP_MJ_MDL_READ请求失败,则 I/O 的颁发者将确定如何重新发出请求。 微筛选器可能并不总是获取基于 IRP 的IRP_MJ_MDL_READ。 例如,IRP 请求可以作为 IRP_MJ_READ/IRP_MN_MDL 重新发出。

IRP_MJ_MDL_READ是一种快速 I/O 操作。

要求

要求类型 要求
标头 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