AddMandatoryAce 函数将SYSTEM_MANDATORY_LABEL_ACE访问控制项(ACE)添加到指定的系统访问控制列表(SACL)。
Syntax
BOOL AddMandatoryAce(
[in, out] PACL pAcl,
[in] DWORD dwAceRevision,
[in] DWORD AceFlags,
[in] DWORD MandatoryPolicy,
[in] PSID pLabelSid
);
参数
[in, out] pAcl
指向 SACL 的指针。 此函数将强制 ACE 添加到此 SACL 的末尾。 ACE 采用 SYSTEM_MANDATORY_LABEL_ACE 结构的形式。
[in] dwAceRevision
要修改的 SACL 的修订级别。 此值可以是以下值之一。
| 价值 | Meaning |
|---|---|
|
SACL 不包含特定于对象的 ACE。 |
|
SACL 包含对象指定的 ACE。 |
[in] AceFlags
控制 ACE 继承的一组位标志。 此函数在新 ACE ACE_HEADER 结构的AceFlags 成员中设置这些标志。
此参数可以是以下值的组合。
[in] MandatoryPolicy
与包含此 ACE 的 SACL 关联的对象相比,具有强制完整性级别的主体的访问策略。
| 价值 | Meaning |
|---|---|
|
强制级别低于对象的主体无法写入对象。 |
|
强制级别低于对象的主体无法读取该对象。 |
|
强制级别低于对象的主体无法执行该对象。 |
[in] pLabelSid
指向 SID 的指针,该指针指定与要追加的 SACL 关联的对象的强制完整性级别。
返回值
如果函数成功,则返回 TRUE。
如果函数失败,则返回 FALSE。 有关扩展错误信息,请调用 GetLastError。 下面是可能的错误值。
| 返回代码/值 | Description |
|---|---|
|
新的 ACE 不适合 pAcl 缓冲区。 |
注解
若要编译使用此函数的应用程序,请将_WIN32_WINNT定义为0x0600或更高版本。 有关详细信息,请参阅 使用 Windows 标头。
要求
| Requirement | 价值 |
|---|---|
| 最低支持的客户端 | Windows Vista [桌面应用 |UWP 应用] |
| 支持的最低服务器 | Windows Server 2008 [桌面应用 |UWP 应用] |
| 目标平台 | Windows操作系统 |
| Header | securitybaseapi.h (包括 WinBase.h) |
| Library | Advapi32.lib |
| DLL | Advapi32.dll |