当作FLT_IO_PARAMETER_BLOCK结构的 MajorFunction 字段IRP_MJ_QUERY_QUOTA时使用的联合组件。
语法
typedef union _FLT_PARAMETERS {
... ;
struct {
ULONG Length;
PSID StartSid;
PFILE_GET_QUOTA_INFORMATION SidList;
ULONG SidListLength;
PVOID QuotaBuffer;
PMLD MdlAddress;
} QueryQuota;
... ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;
成员
QueryQuota:包含以下成员的结构。
长度: QuotaBuffer 指向的缓冲区的长度(以字节为单位)。
StartSid:指向开始扫描配额列表的条目的安全标识符(SID)的可选指针。 如果未在作FLT_IO_PARAMETER_BLOCK结构中设置SL_INDEX_SPECIFIED标志,或者 SidList 指向 nonempty 列表,则忽略此参数。
SidList:指向调用方提供的FILE_GET_QUOTA_INFORMATION结构化输入缓冲区的指针,该缓冲区指定要查询其配额信息的 SID。
SidListLength: SidList 指向的缓冲区的长度(以字节为单位)。
QuotaBuffer:指向要返回配额信息的调用方提供的 FILE_QUOTA_INFORMATION结构化输出缓冲区的指针。 此成员是可选的,如果 MdlAddress 中提供了 MDL,则该成员可以为 NULL。 请参阅 “备注”。
MdlAddress:描述 QuotaBuffer 指向的缓冲区的内存描述符列表(MDL)的地址。 此成员是可选的,如果 QuotaBuffer 中提供了缓冲区,则可以为 NULL。 请参阅 “备注”。
注解
IRP_MJ_QUERY_QUOTA作的FLT_PARAMETERS结构包含回调数据(FLT_CALLBACK_DATA)结构表示的基于 IRP 的查询配额信息作的参数。 它包含在FLT_IO_PARAMETER_BLOCK结构中。
如果同时提供 QuotaBuffer 和 MdlAddress 缓冲区,建议使用 MDL。 当 QuotaBuffer 在调用进程的上下文中访问用户模式地址或它是内核模式地址时,该内存指向的内存有效。
如果微型筛选器更改 MdlAddress 的值,则在其后作回调之后,筛选器管理器将释放当前存储在 MdlAddress 中的 MDL 并还原 MdlAddress 的上一个值。
IRP_MJ_QUERY_QUOTA是基于 IRP 的作。
要求
| 要求类型 | 要求 |
|---|---|
| 标题 | Fltkernel.h (包括 Fltkernel.h) |