AddScopedPolicyIDAce 函数 (securitybaseapi.h)

AddScopedPolicyIDAce 函数SYSTEM_SCOPED_POLICY_ID_ACE访问控制项 (ACE) 添加到系统访问控制列表的末尾, (SACL) 。 SYSTEM_SCOPED_POLICY_ID_ACE结构指定与资源关联的中心访问策略 (CAP) ,并且可以在访问检查期间使用。 标准访问权限主题中定义了 标准访问权限 集。

语法

BOOL AddScopedPolicyIDAce(
  [in, out] PACL  pAcl,
  [in]      DWORD dwAceRevision,
  [in]      DWORD AceFlags,
  [in]      DWORD AccessMask,
  [in]      PSID  pSid
);

参数

[in, out] pAcl

指向 访问控制列表 的指针 (ACL) 。 此函数将 ACE 添加到此 ACL。 此参数的值不能为 NULL

[in] dwAceRevision

指定要修改的 ACL 的修订级别。 此值可以是ACL_REVISION或ACL_REVISION_DS。 如果 ACL 包含特定于对象的 ACE,请使用 ACL_REVISION_DS。

[in] AceFlags

一组控制 ACE 继承的位标志。 函数在新 ACE 的 ACE_HEADER 结构的 AceFlags 成员中设置这些标志。

为了与 Windows 8 高级文件权限 UI 保持一致,应用程序应在 AceFlags 参数中指定CONTAINER_INHERIT_ACE和OBJECT_INHERIT_ACE标志。

此参数可以是以下值的组合。

含义
CONTAINER_INHERIT_ACE
2 (0x2)
ACE 由容器对象继承。
INHERIT_ONLY_ACE
8 (0x8)
ACE 不适用于 ACE 分配到的对象,但它可由子对象继承。
INHERITED_ACE
16 (0x10)
指示继承的 ACE。 此标志允许更改对象树安全性的操作修改继承的 ACE,同时不更改直接应用于对象的 ACE。
NO_PROPAGATE_INHERIT_ACE
4 (0x4)
OBJECT_INHERIT_ACE位和CONTAINER_INHERIT_ACE位不会传播到继承的 ACE。
OBJECT_INHERIT_ACE
1 (0x1)
ACE 由非容器对象继承。

[in] AccessMask

对于Windows 8和Windows Server 2012,必须为零。

[in] pSid

指向 SID 的指针 (S-1-17-*) ,用于标识要与资源关联的中央访问策略。

返回值

如果该函数成功,则返回 TRUE

如果函数失败,则返回 FALSE。 要获得更多的错误信息,请调用 GetLastError。

要求

要求
最低受支持的客户端 Windows 8 [仅限桌面应用]
最低受支持的服务器 Windows Server 2012 [仅限桌面应用]
目标平台 Windows
标头 securitybaseapi.h (包括 Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

标准访问权限