RtlAddAccessAllowedAceEx 函式 (ntifs.h)
RtlAddAccessAllowedAceEx 例程會將具有繼承 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 的訪問許可權。 如需詳細資訊,請參閱 ZwCreateFileDesiredAccess 參數的描述。
[in] Sid
SID 結構的指標,表示正在授與存取權的使用者、群組或登入帳戶。
傳回值
RtlAddAccessAllowedAceEx 可以傳回下列其中一個值:
傳回碼 | 描述 |
---|---|
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 |
目標平臺 | 普遍 |
標頭 | ntifs.h (include Ntifs.h, FltKernel.h) |
連結庫 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |