ZwQuerySecurityObject 函数 (ntifs.h)

ZwQuerySecurityObject 例程检索对象的安全描述符的副本。

语法

NTSYSAPI NTSTATUS ZwQuerySecurityObject(
  [in]  HANDLE               Handle,
  [in]  SECURITY_INFORMATION SecurityInformation,
  [out] PSECURITY_DESCRIPTOR SecurityDescriptor,
  [in]  ULONG                Length,
  [out] PULONG               LengthNeeded
);

参数

[in] Handle

要查询其安全描述符的对象句柄。 此句柄必须具有在 SecurityInformation 参数说明中显示的表的“含义”列中指定的访问权限。

[in] SecurityInformation

一个 SECURITY_INFORMATION 值,指定要作为以下一个或多个组合查询的信息。

价值 意义
OWNER_SECURITY_INFORMATION 正在查询对象的所有者标识符。 需要READ_CONTROL访问权限。
GROUP_SECURITY_INFORMATION 正在查询对象的主要组标识符。 需要READ_CONTROL访问权限。
SACL_SECURITY_INFORMATION 正在查询对象的系统 ACL (SACL)。 需要ACCESS_SYSTEM_SECURITY访问权限。
DACL_SECURITY_INFORMATION 正在查询对象的自由访问控制列表(DACL)。 需要READ_CONTROL访问权限。

[out] SecurityDescriptor

ZwQuerySecurityObject 调用方分配的缓冲区使用指定安全描述符的副本填充。 SECURITY_DESCRIPTOR 结构以相对格式返回。

[in] Length

SecurityDescriptor指向的缓冲区的大小(以字节为单位)。

[out] LengthNeeded

指向调用方分配的变量的指针,该变量接收存储复制的安全描述符所需的字节数。

返回值

ZwQuerySecurityObject 返回STATUS_SUCCESS或适当的错误状态。 可能的错误状态代码包括:

返回代码 描述
STATUS_ACCESS_DENIED 句柄 没有所需的访问权限。
STATUS_BUFFER_TOO_SMALL 对于安全描述符,缓冲区太小。 未将任何安全信息复制到缓冲区。
STATUS_INVALID_HANDLE 句柄 不是有效的句柄。
STATUS_OBJECT_TYPE_MISMATCH 句柄 不是预期类型的句柄。

言论

安全描述符可以采用绝对或自相对形式。 在自相对形式中,结构的所有成员都连续位于内存中。 在绝对形式中,结构仅包含指向成员的指针。 有关详细信息,请参阅 Absolute 和 Self-Relative Security 描述符

NTFS 文件系统对写入文件的安全描述符的大小施加 64K 限制。 (FAT 文件系统不支持文件的安全描述符。因此,可以保证 64K SecurityDescriptor 缓冲区足够大,以容纳返回 SECURITY_DESCRIPTOR 结构。

有关安全和访问控制的详细信息,请参阅适用于驱动程序开发人员 Windows 安全模型,以及有关 Windows SDK 中这些主题的文档。

微型筛选器应调用 FltQuerySecurityObject 而不是 ZwQuerySecurityObject

注意

如果在用户模式下调用 ZwQuerySecurityObject 函数,则应使用名称“NtQuerySecurityObject”而不是“ZwQuerySecurityObject”。

对于内核模式驱动程序的调用,NtXxxZwXxx 版本的 Windows 本机系统服务例程的行为方式可能以不同的方式处理和解释输入参数。 有关 NtXxxZwXxx 例程之间的关系的详细信息,请参阅 使用 Nt 和 Zw 版本的本机系统服务例程

要求

要求 价值
最低支持的客户端 Windows XP
目标平台 普遍
标头 ntifs.h (include Ntifs.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 符合性规则 HwStorPortProhibitedDIS(storport)PowerIrpDDis(wdm)

另请参阅

FltQuerySecurityObject

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

ZwSetSecurityObject