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 は、この ACL の末尾にアクセス許可 ACE を追加します。 ACE は、ACCESS_ALLOWED_ACE構造の形式です。

[in] AceRevision

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

意味
ACL_REVISION
すべての Windows バージョンで有効なリビジョン レベル。
ACL_REVISION_DS
Windows 2000 以降で有効なリビジョン レベル。
Acl の ACL にオブジェクト固有の ACE が含まれている場合は、 AceRevision をACL_REVISION_DSする必要があります。
 

[in] AccessMask

指定した SID に付与するアクセス権を指定する 1 つ以上の ACCESS_MASK フラグのビットマスク。 詳細については、ZwCreateFileDesiredAccess パラメーターの説明を参照してください。

[in] Sid

アクセス権が付与されているユーザー、グループ、またはログオン アカウントを表す SID 構造体へのポインター。

戻り値

RtlAddAccessAllowedAce は、次のいずれかの値を返すことができます。

リターン コード 説明
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 のこれらのトピックに関するドキュメントを参照してください。

要件

要件
対象プラットフォーム ユニバーサル
Header ntifs.h (Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL < DISPATCH_LEVEL

こちらもご覧ください

ACCESS_ALLOWED_ACE

ACCESS_MASK

エース

ACL

RtlCreateAcl

RtlCreateSecurityDescriptor

RtlCreateSecurityDescriptorRelative

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor

RtlSetOwnerSecurityDescriptor

RtlValidSecurityDescriptor

SID

SeAssignSecurity

ZwCreateFile