RtlAddAce 函式 (ntifs.h)
RtlAddAce 例程會將一或多個存取控制專案新增至指定的訪問控制清單(ACL)。
語法
NTSYSAPI NTSTATUS RtlAddAce(
[in, out] PACL Acl,
[in] ULONG AceRevision,
[in] ULONG StartingAceIndex,
[in] PVOID AceList,
[in] ULONG AceListLength
);
參數
[in, out] Acl
要修改之 ACL 的指標。 RtlAddAce 會將指定的 ACL 新增至此 ACL。
[in] AceRevision
要新增之 ACE 的 ACL 修訂層級。 Windows 版本需求如下:
價值 | 意義 |
---|---|
ACL_REVISION | 所有 Windows 版本的修訂層級都有效。 |
ACL_REVISION_DS | 從 Windows 2000 開始有效的修訂層級。 |
AceRevision 必須ACL_REVISION_DS Acl 中的 ACL 包含特定物件的 ACE。
[in] StartingAceIndex
指定 ACL 清單中要加入新 ACE 的位置。 值為零會在清單開頭插入 ACE。 MAXULONG的值會將 ACE 附加至清單結尾。
[in] AceList
緩衝區的指標,其中包含要加入至指定 ACL 的一或多個 ACE 清單。 清單中的 ACE 必須連續儲存。
[in] AceListLength
AceList 參數所指向之輸入緩衝區的大小,以位元組為單位。
傳回值
RtlAddAce 會傳回STATUS_SUCCESS或適當的 NTSTATUS 值,例如下列其中一項:
傳回碼 | 描述 |
---|---|
STATUS_BUFFER_TOO_SMALL | 新的 ACE 不符合 ACL。 需要較大的 ACL 緩衝區。 STATUS_BUFFER_TOO_SMALL是錯誤碼。 |
STATUS_INVALID_PARAMETER | 其中一個參數值無效。 可能的原因包括指定的 ACL 無效或指定的修訂未知、與 ACE 清單中的修訂不相容,或與 ACL 的修訂不相容。 STATUS_INVALID_PARAMETER是錯誤碼。 |
言論
如需計算 ACL 大小的相關信息,請參閱 RtlCreateAcl參考專案的一節。
若要取得 ACL 中 ACE 的指標,請使用 RtlGetAce。
若要從 ACL 刪除 ACE,請使用 RtlDeleteAce。
若要將允許存取的 ACE 新增至 ACL,請使用 RtlAddAccessAllowedAce。
如需安全性和訪問控制的詳細資訊,請參閱 適用於驅動程式開發人員的 Windows 安全性模型,以及 Windows SDK 中這些主題的檔。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows Server 2003 with SP1 |
目標平臺 | 普遍 |
標頭 | ntifs.h (include Ntifs.h) |
連結庫 | NtosKrnl.lib |
DLL | NtosKrnl.exe (核心模式):Ntdll.dll (使用者模式) |
IRQL | <= APC_LEVEL |