AddAccessAllowedAce 函式 (securitybaseapi.h)

AddAccessAllowedAce 函式會將存取允許的訪問控制專案 (ACE) 新增至訪問控制清單 (ACL) 。 存取權會授與指定的 安全性標識符 , (SID) 。

若要控制子物件是否可以繼承新的 ACE,請使用 AddAccessAllowedAceEx 函式。

語法

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

參數

[in, out] pAcl

ACL 的指標。 此函式會將允許存取的 ACE 新增至此 ACL 的結尾。 ACE 的格式為 ACCESS_ALLOWED_ACE 結構。

[in] dwAceRevision

指定要修改之 ACL 的修訂層級。

此值可以是ACL_REVISION或ACL_REVISION_DS。 如果 ACL 包含特定物件 ACE,請使用ACL_REVISION_DS。

[in] AccessMask

指定要授與指定 SID 之訪問許可權的遮罩。

[in] pSid

SID 的指標,代表被授與存取權的使用者、群組或登入帳戶。

傳回值

如果函式成功,則傳回非零的值。

如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。 以下是可能的錯誤值。

傳回碼 Description
ERROR_ALLOTTED_SPACE_EXCEEDED
新的 ACE 不適用於 ACL。 需要較大的 ACL 緩衝區。
ERROR_INVALID_ACL
指定的 ACL 格式不正確。
ERROR_INVALID_SID
指定的 SID 在結構上無效。
ERROR_REVISION_MISMATCH
指定的修訂未知或與 ACL 不相容。
ERROR_SUCCESS
已成功新增 ACE。

備註

將允許的 ACE 新增至 ACL 是最常見的 ACL 修改形式。

AddAccessAllowedAceAddAccessDeniedAce 函式會將新的 ACE 新增至 ACL 清單的結尾。 這些函式不會以適當的標準順序自動放置新的 ACE。 呼叫者必須負責確保 ACL 在適當的順序中新增 ACE,以標準順序排列。

AddAccessAllowedAce 函式放置於 ACE 中的ACE_HEADER結構會指定類型和大小,但不會提供繼承和沒有 ACE 旗標。

範例

如需使用此函式的範例,請參閱 啟動互動式用戶端程式

規格需求

需求
最低支援的用戶端 Windows XP [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2003 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 securitybaseapi.h (包括 Windows.h)
程式庫 Advapi32.lib
Dll Advapi32.dll

另請參閱

ACCESS_ALLOWED_ACE

ACE_HEADER

AddAccessAllowedAceEx

AddAccessDeniedAce

AddAce

AddAuditAccessAce

DeleteAce

GetAce

低階 存取控制

低階 存取控制 函式