RtlAddAccessAllowedAce 函数 (ntifs.h)
RtlAddAccessAllowedAce 例程 (ACE) 将允许访问的访问控制项添加到访问控制列表 (ACL) 。 向 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 版本要求如下:
值 | 含义 |
---|---|
|
在所有 Windows 版本上有效的修订级别。 |
|
从 Windows 2000 开始有效的修订级别。
注意 如果 Acl 中的 ACL 包含特定于对象的 ACE,则必须ACL_REVISION_DS AceRevision。
|
[in] AccessMask
一个或多个 ACCESS_MASK 标志的位掩码,这些标志指定要授予指定 SID 的访问权限。 有关详细信息,请参阅 ZwCreateFile 的 DesiredAccess 参数的说明。
[in] Sid
指向 SID 结构的指针,该结构表示被授予访问权限的用户、组或登录帐户。
返回值
RtlAddAccessAllowedAce 可以返回以下值之一:
返回代码 | 说明 |
---|---|
|
已成功添加 ACE。 |
|
新的 ACE 不适合 ACL。 需要更大的 ACL 缓冲区。 有关计算 ACL 大小的信息,请参阅 RtlCreateAcl 。 |
|
指定的 ACL 格式不正确。 |
|
指定的 SID 结构在结构上无效。 |
|
指定的修订未知或与 ACL 的修订不兼容。 |
注解
有关安全性和访问控制的详细信息,请参阅 面向驱动程序开发人员的 Windows 安全模型 和 Windows SDK 中有关这些主题的文档。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | ntifs.h (包括 Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | < DISPATCH_LEVEL |