IRP_MJ_QUERY_EA联合FLT_PARAMETERS
当操作的FLT_IO_PARAMETER_BLOCK结构的 MajorFunction 字段IRP_MJ_QUERY_EA时使用的联合组件。
语法
typedef union _FLT_PARAMETERS {
... ;
struct {
ULONG Length;
PVOID EaList;
ULONG EaListLength;
ULONG POINTER_ALIGNMENT EaIndex;
PVOID EaBuffer;
PMDL MdlAddress;
} QueryEa;
... ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;
成员
QueryEa:包含以下成员FLT_PARAMETERS联合中的结构。
长度: EaBuffer 指向的缓冲区的长度(以字节为单位)。
EaList:指向调用方提供的FILE_GET_EA_INFORMATION结构化输入缓冲区的指针,该缓冲区指定要查询的扩展属性。
EaListLength: EaList 指向的缓冲区的长度(以字节为单位)。
EaIndex:开始扫描扩展属性列表的条目的索引。 如果未在操作的FLT_IO_PARAMETER_BLOCK结构中设置SL_INDEX_SPECIFIED标志,或者 如果 EaList 指向非空列表,则忽略此参数。
EaBuffer:指向调用方提供的 FILE_FULL_EA_INFORMATION结构化输出缓冲区的指针,该缓冲区将返回扩展属性值。 此成员是可选的,如果 MdlAddress 中提供了 MDL,则该成员可以为 NULL。 请参阅备注。
MdlAddress:内存描述符列表的地址 (MDL) 描述 EaBuffer 指向的缓冲区。 此成员是可选的,如果 EaBuffer 中提供了缓冲区,则该成员可以为 NULL。 请参阅备注。
注解
IRP_MJ_QUERY_EA操作的FLT_PARAMETERS结构包含基于 IRP 的查询扩展属性信息操作的参数,该操作由回调数据 (FLT_CALLBACK_DATA) 结构表示。 它包含在FLT_IO_PARAMETER_BLOCK结构中。
如果同时提供了 EaBuffer 和 MdlAddress 缓冲区,建议微筛选器使用 MDL。 如果 EaBuffer 指向的内存是在调用进程的上下文中访问的用户模式地址,或者它是内核模式地址,则它有效。
如果微筛选器更改 MdlAddress 的值,则在其后操作回调之后,筛选器管理器将释放当前存储在 MdlAddress 中的 MDL 并还原 MdlAddress 的先前值。
IRP_MJ_QUERY_EA是基于 IRP 的操作。
要求
要求类型 | 要求 |
---|---|
标头 | Fltkernel.h (包括 Fltkernel.h) |