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 继承的一组位标志。 该函数在 AceFlags 新 ACE ACE_HEADER 结构的成员中设置这些标志。

为了与 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 [仅限桌面应用]
目标平台 窗户
标头 securitybaseapi.h (包括 Windows.h)
Kernel32.lib
DLL Kernel32.dll

另请参阅

标准访问权限