共用方式為


AddResourceAttributeAce 函式 (securitybaseapi.h)

AddResourceAttributeAce 函式會將 SYSTEM_RESOURCE_ATTRIBUTE_ACE訪問控制專案 (ACE) 新增至 系統存取控制清單 (SACL) 結尾。 SYSTEM_RESOURCE_ATTRIBUTE_ACE 結構會指定屬性名稱和與資源相關聯的值排序項目清單,並在存取檢查期間可能使用。 標準訪問許可權集合定義於標準訪問許可權 主題

語法

BOOL AddResourceAttributeAce(
  [in, out] PACL                                   pAcl,
  [in]      DWORD                                  dwAceRevision,
  [in]      DWORD                                  AceFlags,
  [in]      DWORD                                  AccessMask,
  [in]      PSID                                   pSid,
  [in]      PCLAIM_SECURITY_ATTRIBUTES_INFORMATION pAttributeInfo,
  [out]     PDWORD                                 pReturnLength
);

參數

[in, out] pAcl

存取控制清單的指標 (ACL)。 此函式會將 ACE 新增至此 ACL。 這個參數的值不能 NULL。 ACE 的格式為 SYSTEM_RESOURCE_ATTRIBUTE_ACE 結構。

[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

必須是適用於 Windows 8 和 Windows Server 2012 的 Everyone SID (S-1-1-0)。

[in] pAttributeInfo

指定將在 ACE 中的 SID 之後附加的屬性資訊。

[out] pReturnLength

實際使用 ACL 緩衝區的大小,以位元組為單位。 如果 pAcl 參數所指定的緩衝區不夠大,此參數的值就是 ACL 緩衝區所需的總大小。

傳回值

如果函式成功,它會 TRUE傳回 。

如果函式失敗,它會 FALSE傳回 。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

要求

要求 價值
最低支援的用戶端 Windows 8 [僅限傳統型應用程式]
支援的最低伺服器 Windows Server 2012 [僅限傳統型應用程式]
目標平臺 窗戶
標頭 securitybaseapi.h (包括 Windows.h)
連結庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

標準訪問許可權