RtlAddAce 函式 (ntifs.h)
RtlAddAce 例程會將一或多個存取控制專案 (ACL) 新增至指定的存取控制清單 (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 開始有效的修訂層級。 |
如果 Acl 中的 ACL 包含物件特定的 ACE,則必須ACL_REVISION_DS AceRevision。
[in] StartingAceIndex
指定 ACL 清單中要新增 ACE 的位置。 值為零會在清單開頭插入 ACE。 MAXULONG的值會將 ACE 附加至清單結尾。
[in] AceList
緩衝區的指標,其中包含要加入至指定 ACL 的一或多個 ACE 清單。 清單中的 ACE 必須連續儲存。
[in] AceListLength
AceList 參數所指向之輸入緩衝區的大小,以位元組為單位。
傳回值
RtlAddAce 會傳回STATUS_SUCCESS或適當的 NTSTATUS 值,例如下列其中一項:
傳回碼 | Description |
---|---|
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 SP1 |
目標平台 | Universal |
標頭 | ntifs.h (包含 Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe (核心模式) ;Ntdll.dll (使用者模式) |
IRQL | <= APC_LEVEL |