RtlAddAccessAllowedAce 函式 (ntifs.h)

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

語法

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

參數

[in, out] Acl

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

[in] AceRevision

要新增之 ACE 的 ACL 修訂層級。 Windows 版本需求如下:

意義
ACL_REVISION
所有 Windows 版本的修訂層級都有效。
ACL_REVISION_DS
從 Windows 2000 開始有效的修訂層級。
注意 如果 Acl 中的 ACL 包含特定物件的 ACE,則必須ACL_REVISION_DS AceRevision
 

[in] AccessMask

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

[in] Sid

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

傳回值

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

傳回碼 Description
STATUS_SUCCESS
已成功新增 ACE。
STATUS_ALLOTTED_SPACE_EXCEEDED
新的 ACE 不適用於 ACL。 需要較大的 ACL 緩衝區。 如需計算 ACL 大小的相關信息,請參閱 RtlCreateAcl
STATUS_INVALID_ACL
指定的 ACL 格式不正確。
STATUS_INVALID_SID
指定的 SID 結構在結構上無效。
STATUS_REVISION_MISMATCH
指定的修訂未知或與 ACL 的版本不相容。

備註

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

規格需求

需求
目標平台 Universal
標頭 ntifs.h (包含 Ntifs.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL < DISPATCH_LEVEL

另請參閱

ACCESS_ALLOWED_ACE

ACCESS_MASK

Ace

ACL

RtlCreateAcl

RtlCreateSecurityDescriptor

RtlCreateSecurityDescriptorRelative

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor

RtlSetOwnerSecurityDescriptor

RtlValidSecurityDescriptor

SID

SeAssignSecurity

ZwCreateFile