RtlAddAce 関数 (ntifs.h)

RtlAddAce ルーチンは、指定されたアクセス制御リスト (ACL) に 1 つ以上のアクセス制御エントリ (ACE) を追加します。

構文

NTSYSAPI NTSTATUS RtlAddAce(
  [in, out] PACL  Acl,
  [in]      ULONG AceRevision,
  [in]      ULONG StartingAceIndex,
  [in]      PVOID AceList,
  [in]      ULONG AceListLength
);

パラメーター

[in, out] Acl

変更する ACL へのポインター。 RtlAddAce は 、指定された ACE をこの ACL に追加します。

[in] AceRevision

追加する ACE の ACL リビジョン レベル。 Windows バージョンの要求は次のとおりです。

意味
ACL_REVISION すべての Windows バージョンで有効なリビジョン レベル。
ACL_REVISION_DS Windows 2000 以降で有効なリビジョン レベル。

Acl の ACL にオブジェクト固有の ACE が含まれている場合は、AceRevision をACL_REVISION_DSする必要があります。

[in] StartingAceIndex

新しい ACE を追加する ACL の ACE の一覧内の位置を指定します。 値が 0 の場合、リストの先頭に ACE が挿入されます。 MAXULONG の値は、ACE をリストの末尾に追加します。

[in] AceList

指定した ACL に追加する 1 つ以上の ACE のリストを含むバッファーへのポインター。 リスト内の ACE は連続して格納する必要があります。

[in] AceListLength

AceList パラメーターが指す入力バッファーのサイズ (バイト単位)。

戻り値

RtlAddAce は 、次のいずれかのSTATUS_SUCCESSまたは適切な NTSTATUS 値を返します。

リターン コード 説明
STATUS_BUFFER_TOO_SMALL 新しい ACE は ACL に適合しません。 より大きな ACL バッファーが必要です。 STATUS_BUFFER_TOO_SMALLはエラー コードです。
STATUS_INVALID_PARAMETER パラメーター値の 1 つが無効です。 考えられる理由としては、指定した ACL が無効であるか、指定したリビジョンが不明であるか、ACE リストのリビジョンと互換性がない、または ACL のリビジョンと互換性がないなどがあります。 STATUS_INVALID_PARAMETERはエラー コードです。

注釈

ACL のサイズの計算については、 RtlCreateAcl のリファレンス エントリの「解説」セクションを参照してください。

ACL 内の ACE へのポインターを取得するには、 RtlGetAce を使用します

ACL から ACE を削除するには、 RtlDeleteAce を使用します

アクセス許可 ACE を ACL に追加するには、 RtlAddAccessAllowedAce を使用します。

セキュリティとアクセス制御の詳細については、 ドライバー開発者向けの Windows セキュリティ モデル と、Windows SDK のこれらのトピックに関するドキュメントを参照してください。

要件

要件
サポートされている最小のクライアント Windows Server 2003 SP1
対象プラットフォーム ユニバーサル
Header ntifs.h (Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe (カーネル モード);Ntdll.dll (ユーザー モード)
IRQL <= APC_LEVEL

こちらもご覧ください

エース

ACL

RtlAddAccessAllowedAce

RtlCreateAcl

RtlDeleteAce

RtlGetAce