RtlAddAccessAllowedAce 函数 (ntifs.h)

RtlAddAccessAllowedAce 例程向访问控制列表(ACL)添加允许的访问访问控制项(ACE)。 授予对指定安全标识符(SID)的访问权限。

语法

NTSYSAPI NTSTATUS RtlAddAccessAllowedAce(
  [in, out] PACL        Acl,
  [in]      ULONG       AceRevision,
  [in]      ACCESS_MASK AccessMask,
  [in]      PSID        Sid
);

参数

[in, out] Acl

指向包含要修改的 ACL 的调用方分配的缓冲区的指针。 RtlAddAccessAllowedAce 将允许访问的 ACE 添加到此 ACL 的末尾。 ACE 采用ACCESS_ALLOWED_ACE结构的形式。

[in] AceRevision

要添加的 ACE 的 ACL 修订级别。 Windows 版本要求如下:

价值 意义
ACL_REVISION
在所有 Windows 版本上有效的修订级别。
ACL_REVISION_DS
从 Windows 2000 开始有效的修订级别。
请注意,如果 Acl Acl 中的 ACL 包含特定于对象的 ACE,则必须ACL_REVISION_DS AceRevision
 

[in] AccessMask

一个或多个 ACCESS_MASK 标志的位掩码,用于指定要授予指定 SID 的访问权限。 有关详细信息,请参阅 ZwCreateFileDesiredAccess 参数的说明。

[in] Sid

指向表示要授予访问权限的用户、组或登录帐户的 SID 结构的指针。

返回值

RtlAddAccessAllowedAce 可以返回以下值之一:

返回代码 描述
STATUS_SUCCESS
已成功添加 ACE。
STATUS_ALLOTTED_SPACE_EXCEEDED
新的 ACE 不适合 ACL。 需要更大的 ACL 缓冲区。 有关计算 ACL 大小的信息,请参阅 RtlCreateAcl
STATUS_INVALID_ACL
指定的 ACL 格式不正确。
STATUS_INVALID_SID
指定的 SID 结构在结构上无效。
STATUS_REVISION_MISMATCH
指定的修订未知或与 ACL 的修订不兼容。

言论

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

要求

要求 价值
目标平台 普遍
标头 ntifs.h (include Ntifs.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

另请参阅

ACCESS_ALLOWED_ACE

ACCESS_MASK

ACE

ACL

RtlCreateAcl

RtlCreateSecurityDescriptor

RtlCreateSecurityDescriptorRelative

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor

RtlSetOwnerSecurityDescriptor

RtlValidSecurityDescriptor

SID

SeAssignSecurity

ZwCreateFile