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
指向指向对象安全描述符的指针的指针。 安全描述符必须采用相对格式。
返回值
| 返回代码 | 描述 |
|---|---|
|
调用 SeQuerySecurityDescriptorInfo 成功。 |
|
对于安全描述符,缓冲区太小。 未将任何安全信息复制到缓冲区。 |
言论
安全描述符可以采用绝对格式或相对格式。 绝对格式的安全描述符包含指向其包含的信息的指针,而不是包含信息本身。 具有相对格式的安全描述符包含连续内存块中的信息。 在相对安全描述符中,SECURITY_DESCRIPTOR 结构始终启动信息,但安全描述符的其他组件可以按任意顺序遵循SECURITY_DESCRIPTOR结构。 安全描述符的组件由安全描述符开头的偏移量标识,而不是使用内存地址。 当安全描述符必须存储在磁盘上或通过通信协议传输时,此格式非常有用。
由于安全描述符以相对格式返回,因此 SeQuerySecurityDescriptorInfo 调用方应将 SecurityDescriptor 参数中返回的值强制转换为类型PISECURITY_DESCRIPTOR_RELATIVE。
有关安全和访问控制的详细信息,请参阅适用于驱动程序开发人员 Windows 安全模型,以及有关 Windows SDK 中这些主题的文档。
要求
| 要求 | 价值 |
|---|---|
| 目标平台 | 普遍 |
| 标头 | ntifs.h (include Ntifs.h) |
| 库 | NtosKrnl.lib |
| DLL | NtosKrnl.exe |
| IRQL | PASSIVE_LEVEL |