共用方式為


AddMandatoryAce function (securitybaseapi.h)

AddMandatoryAce 函式會在指定的系統存取控制清單(SACL)中新增SYSTEM_MANDATORY_LABEL_ACE存取控制條目(ACE)。

語法

BOOL AddMandatoryAce(
  [in, out] PACL  pAcl,
  [in]      DWORD dwAceRevision,
  [in]      DWORD AceFlags,
  [in]      DWORD MandatoryPolicy,
  [in]      PSID  pLabelSid
);

參數

[in, out] pAcl

指向SACL。 此功能為此 SACL 末尾加入強制性的 ACE。 ACE以 SYSTEM_MANDATORY_LABEL_ACE 結構的形式存在。

[in] dwAceRevision

SACL的修訂級別。 此值可為以下數值之一。

價值觀 Meaning
ACL_REVISION
SACL 不包含物件專屬的 ACE。
ACL_REVISION_DS
SACL 包含物件指定的 ACE。

[in] AceFlags

一組控制 ACE 繼承的位元旗標。 此函式將這些旗標置於新 ACE ACE_HEADER結構的 AceFlags 成員中。

此參數可由以下數值組合而成。

價值觀 Meaning
OBJECT_INHERIT_ACE
0x1
ACE 由非容器物件繼承。
CONTAINER_INHERIT_ACE
0x2
ACE 由容器物件繼承。
NO_PROPAGATE_INHERIT_ACE
0x4
OBJECT_INHERIT_ACECONTAINER_INHERIT_ACE 位元不會傳播到繼承的 ACE。
INHERIT_ONLY_ACE
0x8
ACE 不適用於 SACL 所指派的物件,但 ACE 可由子物件繼承。
INHERITED_ACE
0x10
ACE 是遺傳的。 改變物件樹安全性的操作可以修改繼承的 ACE,而不改變直接套用到物件的 ACE。

[in] MandatoryPolicy

對於必須完整性低於包含此 ACE 的 SACL 物件的主體的存取政策。

價值觀 Meaning
SYSTEM_MANDATORY_LABEL_NO_WRITE_UP
0x1
一個要求層級低於物件的主體,不能寫入該物件。
SYSTEM_MANDATORY_LABEL_NO_READ_UP
0x2
一個必須等級低於物件的負責人無法讀取該物件。
SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP
0x4
主體的強制層級低於物件,無法執行該物件。

[in] pLabelSid

指向一個 SID 的指標,指定與所附加 SACL 相關物件的強制完整性等級。

返回值

若函式成功,則回傳 TRUE

如果函式失敗,則會傳回 FALSE。 如需擴充錯誤資訊,請呼叫 GetLastError。 以下是可能的誤差值。

傳回碼/值 Description
ERROR_ALLOTTED_SPACE_EXCEEDED
0x540
新的 ACE 無法放入 pAcl 緩衝區。

備註

若要編譯使用此函式的應用程式,請將_WIN32_WINNT定義為 0x0600 或更高版本。 如需詳細資訊,請參閱 使用 Windows 標頭

需求

Requirement 價值觀
最低支援的用戶端 Windows Vista [傳統型應用程式 |UWP 應用程式]
支援的最低伺服器 Windows Server 2008 [傳統型應用程式 |UWP 應用程式]
目標平臺 窗戶
Header securitybaseapi.h(包含 WinBase.h)
Library Advapi32.lib
DLL Advapi32.dll

另請參閱

SYSTEM_MANDATORY_LABEL_ACE