RtlAddAccessAllowedAceEx 函式 (ntifs.h)

RtlAddAccessAllowedAceEx 例程會將存取權允許的訪問控制專案新增至 ACE (ACE ) ,並將繼承 ACE 旗標新增至訪問控制清單, (ACL) 。 存取權會授與指定的安全標識碼, (SID) 。

語法

NTSYSAPI NTSTATUS RtlAddAccessAllowedAceEx(
  [in, out] PACL        Acl,
  [in]      ULONG       AceRevision,
  [in]      ULONG       AceFlags,
  [in]      ACCESS_MASK AccessMask,
  [in]      PSID        Sid
);

參數

[in, out] Acl

呼叫端配置的緩衝區指標,其中包含要修改的 ACL。 RtlAddAccessAllowedAceEx 會將允許存取的 ACE 新增至此 ACL 的結尾。 ACE 的格式為 ACCESS_ALLOWED_ACE 結構。

[in] AceRevision

要新增之 ACE 的 ACL 修訂層級。 此值可以是ACL_REVISION或ACL_REVISION_DS。 如果 ACL 包含物件特定的 ACE,則必須ACL_REVISION_DS。

[in] AceFlags

指定要加入之 ACE 繼承旗標的位掩碼。

[in] AccessMask

一個或多個 ACCESS_MASK 旗標的位掩碼,指定要授與指定 SID 的訪問許可權。 如需詳細資訊,請參閱 ZwCreateFile的 DesiredAccess 參數描述。

[in] Sid

SID 結構的指標,表示正在授與存取權的使用者、群組或登入帳戶。

傳回值

RtlAddAccessAllowedAceEx 可以傳回下列其中一個值:

傳回碼 Description
STATUS_SUCCESS 已成功新增 ACE。
STATUS_ALLOTTED_SPACE_EXCEEDED 新的 ACE 不適用於 ACL。 需要較大的 ACL 緩衝區。 如需如何計算 ACL 大小的詳細資訊,請參閱 RtlCreateAcl
STATUS_INVALID_ACL 指定的 ACL 格式不正確。
STATUS_INVALID_PARAMETER AceFlags 參數無效。
STATUS_INVALID_SID 指定的 SID 結構在結構上無效。
STATUS_REVISION_MISMATCH 指定的 AceRevision 未知或與 ACL 不相容。

備註

不同於 RtlAddAccessAllowedAce,此例程會設定繼承 ACE 旗標。

如需安全性和訪問控制的詳細資訊,請參閱 適用於驅動程序開發人員的 Windows 安全性模型 ,以及 Windows SDK 中這些主題的相關文件,例如:

規格需求

需求
最低支援的用戶端 Windows 2000
目標平台 Universal
標頭 ntifs.h (包括 Ntifs.h、FltKernel.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL <= APC_LEVEL

另請參閱

ACCESS_ALLOWED_ACE

ACCESS_MASK

Ace

ACL

RtlCreateAcl

RtlCreateSecurityDescriptor

RtlCreateSecurityDescriptorRelative

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor

RtlSetOwnerSecurityDescriptor

RtlValidSecurityDescriptor

SID

SeAssignSecurity

ZwCreateFile