RtlAddAccessAllowedAceEx 関数 (ntifs.h)

RtlAddAccessAllowedAceEx ルーチンは、アクセス制御リスト (ACL) に継承 ACE フラグを持つアクセス許可アクセス制御エントリ (ACE) を追加します。 アクセス権は、指定されたセキュリティ識別子 (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 は、この ACL の末尾にアクセス許可 ACE を追加します。 ACE は、 ACCESS_ALLOWED_ACE 構造体の形式です。

[in] AceRevision

追加する ACE の ACL リビジョン レベル。 この値は、ACL_REVISIONまたはACL_REVISION_DSできます。 ACL にオブジェクト固有の ACE が含まれている場合は、ACL_REVISION_DSする必要があります。

[in] AceFlags

追加する ACE の継承フラグを指定するビットマスク。

[in] AccessMask

指定した SID に付与するアクセス権を指定する 1 つ以上の ACCESS_MASK フラグのビットマスク。 詳細については、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 の AceRevision と互換性がありません。

注釈

RtlAddAccessAllowedAce とは異なり、このルーチンは継承 ACE フラグを設定します。

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

要件

要件
サポートされている最小のクライアント Windows 2000
対象プラットフォーム ユニバーサル
Header ntifs.h (Ntifs.h、FltKernel.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL <= APC_LEVEL

こちらもご覧ください

ACCESS_ALLOWED_ACE

ACCESS_MASK

エース

ACL

RtlCreateAcl

RtlCreateSecurityDescriptor

RtlCreateSecurityDescriptorRelative

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor

RtlSetOwnerSecurityDescriptor

RtlValidSecurityDescriptor

SID

SeAssignSecurity

ZwCreateFile