SeQuerySecurityDescriptorInfo 函数 (ntifs.h)

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

语法

NTSTATUS SeQuerySecurityDescriptorInfo(
  [in]      PSECURITY_INFORMATION SecurityInformation,
  [out]     PSECURITY_DESCRIPTOR  SecurityDescriptor,
  [in, out] PULONG                Length,
  [in, out] PSECURITY_DESCRIPTOR  *ObjectsSecurityDescriptor
);

参数

[in] SecurityInformation

指向 SECURITY_INFORMATION 值的指针,该值指定要查询的安全信息。

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

[out] SecurityDescriptor

调用方分配的用户缓冲区, SeQuerySecurityDescriptorInfo 以自相对格式填充指定安全描述符的副本。

[in, out] Length

指向变量的指针,该变量指定 SecurityDescriptor 指向的缓冲区的大小(以字节为单位)。 返回后, SeQuerySecurityDescriptorInfo 将此变量设置为存储请求的信息所需的字节数。

[in, out] ObjectsSecurityDescriptor

指向指向对象安全描述符的指针的指针的指针。 安全描述符必须采用自相对格式。

返回值

返回代码 说明
STATUS_SUCCESS
已成功调用 SeQuerySecurityDescriptorInfo
STATUS_BUFFER_TOO_SMALL
对于安全描述符,缓冲区太小。 未将任何安全信息复制到缓冲区。

注解

安全描述符可以是绝对格式或自相对格式。 采用绝对格式的安全描述符包含指向它所包含的信息的指针,而不是包含信息本身。 采用自我相对格式的安全描述符包含连续内存块中的信息。 在自相对安全描述符中, SECURITY_DESCRIPTOR 结构始终启动信息,但安全描述符的其他组件可以按照任何顺序遵循SECURITY_DESCRIPTOR结构。 安全描述符的组成部分不使用内存地址,而是由安全描述符开头的偏移来标识。 当安全描述符必须存储在磁盘上或通过通信协议传输时,这种格式很有用。

由于安全描述符是以自相对格式返回的, 因此 SeQuerySecurityDescriptorInfo 的调用方应将 SecurityDescriptor 参数中返回的值转换为类型PISECURITY_DESCRIPTOR_RELATIVE。

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

要求

要求
目标平台 通用
标头 ntifs.h (包括 Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

另请参阅

ACL

RtlAbsoluteToSelfRelativeSD

RtlCreateSecurityDescriptor

RtlCreateSecurityDescriptorRelative

RtlGetOwnerSecurityDescriptor

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor

RtlSetOwnerSecurityDescriptor

RtlValidSecurityDescriptor

SECURITY_DESCRIPTOR