IRP_MJ_READ联合的FLT_PARAMETERS
当操作的FLT_IO_PARAMETER_BLOCK结构的 MajorFunction 字段IRP_MJ_READ时,使用以下联合组件。
语法
typedef union _FLT_PARAMETERS {
... ;
struct {
ULONG Length;
ULONG POINTER_ALIGNMENT Key;
LARGE_INTEGER ByteOffset;
PVOID ReadBuffer;
PMDL MdlAddress;
} Read;
... ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;
成员
读取:包含以下成员的结构。
长度:要读取的数据的长度(以字节为单位)。
键:与目标文件上的字节范围锁关联的键值。
ByteOffset:要读取的数据文件中的起始字节偏移量。
ReadBuffer:指向接收从文件读取的数据的缓冲区的指针。 此成员是可选的,如果 MdlAddress 中提供了 MDL,则该成员可以为 NULL。 请参阅备注。
MdlAddress:内存描述符列表 (描述 ReadBuffer 成员指向的缓冲区的 MDL) 的地址。 此成员是可选的,如果在 ReadBuffer 中提供了缓冲区,则该成员可以为 NULL。 请参阅备注。
注解
IRP_MJ_READ操作的FLT_PARAMETERS结构包含读取操作的参数,该操作由回调数据 (FLT_CALLBACK_DATA) 结构表示。 它包含在FLT_IO_PARAMETER_BLOCK结构中。
如果同时提供了 ReadBuffer 和 MdlAddress 缓冲区,建议微筛选器使用 MDL。 如果 ReadBuffer 指向的内存是在调用进程的上下文中访问的用户模式地址,或者它是内核模式地址,则它有效。
如果微筛选器更改 MdlAddress 的值,则在其后操作回调之后,筛选器管理器将释放当前存储在 MdlAddress 中的 MDL 并还原 MdlAddress 的先前值。
IRP_MJ_READ可以是基于 IRP 的操作或快速 I/O 操作。
要求
要求类型 | 要求 |
---|---|
标头 | Fltkernel.h (包括 Fltkernel.h) |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈