RtlAddAccessAllowedAceEx 函数 (ntifs.h)
RtlAddAccessAllowedAceEx 例程将具有继承 ACE 标志 (ACE ) 允许访问的访问控制项添加到访问控制列表 (ACL) 。 向指定的安全标识符授予访问权限, (SID) 。
语法
NTSYSAPI NTSTATUS RtlAddAccessAllowedAceEx(
[in, out] PACL Acl,
[in] ULONG AceRevision,
[in] ULONG AceFlags,
[in] ACCESS_MASK AccessMask,
[in] PSID Sid
);
参数
[in, out] Acl
指向调用方分配的缓冲区的指针,该缓冲区包含要修改的 ACL。 RtlAddAccessAllowedAceEx 将允许访问的 ACE 添加到此 ACL 的末尾。 ACE 采用 ACCESS_ALLOWED_ACE 结构的形式。
[in] AceRevision
要添加的 ACE 的 ACL 修订级别。 此值可以是ACL_REVISION或ACL_REVISION_DS。 如果 ACL 包含特定于对象的 ACE,则必须对其进行ACL_REVISION_DS。
[in] AceFlags
指定要添加的 ACE 的继承标志的位掩码。
[in] AccessMask
一个或多个 ACCESS_MASK 标志的位掩码,这些标志指定要授予指定 SID 的访问权限。 有关详细信息,请参阅 ZwCreateFile 的 DesiredAccess 参数的说明。
[in] Sid
指向 SID 结构的指针,该结构表示正在被授予访问权限的用户、组或登录帐户。
返回值
RtlAddAccessAllowedAceEx 可以返回以下值之一:
返回代码 | 说明 |
---|---|
STATUS_SUCCESS | 已成功添加 ACE。 |
STATUS_ALLOTTED_SPACE_EXCEEDED | 新的 ACE 不适合 ACL。 需要更大的 ACL 缓冲区。 有关如何计算 ACL 大小的详细信息,请参阅 RtlCreateAcl。 |
STATUS_INVALID_ACL | 指定的 ACL 格式不正确。 |
STATUS_INVALID_PARAMETER | AceFlags 参数无效。 |
STATUS_INVALID_SID | 指定的 SID 结构在结构上无效。 |
STATUS_REVISION_MISMATCH | 指定的 AceRevision 未知或与 ACL 的 Acl 不兼容。 |
注解
与 RtlAddAccessAllowedAce 不同,此例程设置继承 ACE 标志。
有关安全性和访问控制的详细信息,请参阅 面向驱动程序开发人员的 Windows 安全模型 和 Windows SDK 中有关这些主题的文档,例如:
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 |
目标平台 | 通用 |
标头 | ntifs.h (包括 Ntifs.h、FltKernel.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |