IRP_MJ_QUERY_SECURITY union 的FLT_PARAMETERS

IRP_MJ_QUERY_SECURITY操作FLT_IO_PARAMETER_BLOCK结构的MajorFunction 字段时使用的联合组件。

语法

typedef union _FLT_PARAMETERS {
  ...    ;
  struct {
    SECURITY_INFORMATION    SecurityInformation;
    ULONG POINTER_ALIGNMENT Length;
    PVOID                   SecurityBuffer;
    PDML                    MdlAddress;
  } QuerySecurity;
  ...    ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;

成员

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

  • SecurityInformation:指向调用方提供的 SECURITY_INFORMATION 值的指针,该值指定要查询的安全信息。 下列类型作之一:

    SecurityInformation 值 含义
    OWNER_SECURITY_INFORMATION 正在查询对象的所有者标识符。 需要READ_CONTROL访问权限。
    GROUP_SECURITY_INFORMATION 正在查询对象的主组标识符。 需要READ_CONTROL访问权限。
    DACL_SECURITY_INFORMATION 正在查询对象的 DACL) (任意访问控制列表。 需要READ_CONTROL访问权限。
    SACL_SECURITY_INFORMATION 正在查询对象的系统 ACL (SACL) 。 需要ACCESS_SYSTEM_SECURITY访问权限。
  • 长度SecurityBuffer 指向的缓冲区的长度(以字节为单位)。

  • SecurityBuffer:指向调用方提供的输出缓冲区的指针,该缓冲区接收指定对象的安全描述符的副本。 调用进程必须有权查看对象安全状态的指定方面。 SECURITY_DESCRIPTOR 结构以自相对格式返回。 此成员是可选的,如果 MdlAddress 中提供了 MDL,则该成员可以为 NULL。 请参阅备注

  • MdlAddress:内存描述符列表的地址 (描述 SecurityBuffer 指向的缓冲区的 MDL) 。 此成员是可选的,如果 SecurityBuffer 中提供了缓冲区,则可以为 NULL。 请参阅备注

注解

IRP_MJ_QUERY_SECURITY操作的FLT_PARAMETERS结构包含基于 IRP 的 query-security-information 操作的参数,该操作由回调数据表示 (FLT_CALLBACK_DATA) 结构。 它包含在 FLT_IO_PARAMETER_BLOCK 结构中。

如果同时提供了 SecurityBufferMdlAddress 缓冲区,建议微筛选器使用 MDL。 如果 SecurityBuffer 指向的内存是在调用进程的上下文中访问的用户模式地址,或者它是内核模式地址,则它有效。

如果微筛选器更改 MdlAddress 的值,则在其后操作回调后,筛选器管理器将释放当前存储在 MdlAddress 中的 MDL 并还原 MdlAddress 的先前值。

在 Windows XP 及更高版本中, targetFileObject 成员FLT_IO_PARAMETER_BLOCK结构指向的对象可以表示命名数据流。 有关命名数据流的详细信息,请参阅 FILE_STREAM_INFORMATION

IRP_MJ_QUERY_SECURITY是基于 IRP 的操作。

要求

要求类型 要求
标头 Fltkernel.h (包括 Fltkernel.h)

另请参阅

FILE_STREAM_INFORMATION

FLT_CALLBACK_DATA

FLT_IO_PARAMETER_BLOCK

FLT_PARAMETERS

IRP_MJ_QUERY_SECURITY

SECURITY_DESCRIPTOR

SECURITY_INFORMATION