RtlSetOwnerSecurityDescriptor 函数 (ntifs.h)

RtlSetOwnerSecurityDescriptor 例程设置绝对格式安全描述符的所有者信息。 它将替换安全描述符中已存在的任何所有者信息。

语法

NTSYSAPI NTSTATUS RtlSetOwnerSecurityDescriptor(
  [in, out]      PSECURITY_DESCRIPTOR SecurityDescriptor,
  [in, optional] PSID                 Owner,
  [in, optional] BOOLEAN              OwnerDefaulted
);

参数

[in, out] SecurityDescriptor

指向要设置其所有者的SECURITY_DESCRIPTOR结构的指针。 RtlSetOwnerSecurityDescriptor 将任何现有所有者替换为新所有者。

[in, optional] Owner

指向安全描述符的新主所有者的安全标识符 (SID) 结构的指针。 此指针(而不是 SID 结构本身)将复制到安全描述符中。 如果此参数为 NULL则 RtlSetOwnerSecurityDescriptor 将清除安全描述符的所有者信息。 这会将安全描述符标记为没有所有者。

[in, optional] OwnerDefaulted

如果所有者信息派生自默认机制,则设置为 TRUE 。 如果此值为 TRUE,则为默认信息。 RtlSetOwnerSecurityDescriptor 在安全描述符的SECURITY_DESCRIPTOR_CONTROL字段中设置SE_OWNER_DEFAULTED标志。 如果此参数为 FALSE,则清除SE_OWNER_DEFAULTED标志。

返回值

RtlSetOwnerSecurityDescriptor 可以返回以下状态代码之一:

返回代码 说明
STATUS_SUCCESS
已成功设置或重置所有者。
STATUS_UNKNOWN_REVISION
此例程无法识别给定安全描述符的版本。
STATUS_INVALID_SECURITY_DESCR
给定的安全描述符不是有效的绝对安全描述符。

注解

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

要求

要求
目标平台 通用
标头 ntifs.h (包括 Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe (内核模式) ;Ntdll.dll (用户模式)
IRQL < DISPATCH_LEVEL

另请参阅

RtlCreateSecurityDescriptor

RtlCreateSecurityDescriptorRelative

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor

RtlValidSecurityDescriptor

SECURITY_DESCRIPTOR

SECURITY_DESCRIPTOR_CONTROL

SID

SeAssignSecurity