AddAccessAllowedAce 関数 (securitybaseapi.h)

AddAccessAllowedAce 関数は、アクセス許可アクセス制御エントリ (ACE) をアクセス制御リスト (ACL) に追加します。 アクセス権は、指定された セキュリティ識別子 (SID) に付与されます。

新しい ACE を子オブジェクトによって継承できるかどうかを制御するには、 AddAccessAllowedAceEx 関数を使用します。

構文

BOOL AddAccessAllowedAce(
  [in, out] PACL  pAcl,
  [in]      DWORD dwAceRevision,
  [in]      DWORD AccessMask,
  [in]      PSID  pSid
);

パラメーター

[in, out] pAcl

ACL へのポインター。 この関数は、この ACL の末尾にアクセス許可 ACE を追加します。 ACE は、 ACCESS_ALLOWED_ACE 構造の形式です。

[in] dwAceRevision

変更する ACL のリビジョン レベルを指定します。

この値は、ACL_REVISIONまたはACL_REVISION_DSできます。 ACL にオブジェクト固有の ACE が含まれている場合は、ACL_REVISION_DSを使用します。

[in] AccessMask

指定した SID に付与するアクセス権のマスクを指定します。

[in] pSid

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

戻り値

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。 考えられるエラー値を次に示します。

リターン コード 説明
ERROR_ALLOTTED_SPACE_EXCEEDED
新しい ACE は ACL に適合しません。 より大きな ACL バッファーが必要です。
ERROR_INVALID_ACL
指定された ACL が正しく形成されていません。
ERROR_INVALID_SID
指定された SID が構造的に有効ではありません。
ERROR_REVISION_MISMATCH
指定されたリビジョンが不明であるか、ACL のリビジョンと互換性がありません。
ERROR_SUCCESS
ACE が正常に追加されました。

注釈

ACL へのアクセス許可 ACE の追加は、ACL の変更の最も一般的な形式です。

AddAccessAllowedAce 関数と AddAccessDeniedAce 関数は、ACL の ACE の一覧の末尾に新しい ACE を追加します。 これらの関数では、新しい ACE が適切な正規の順序で自動的に配置されるわけではありません。 ACL が正しい順序で ACE を追加して正規の順序になるようにするのは、呼び出し元の責任です。

AddAccessAllowedAce 関数によって ACE に配置されたACE_HEADER構造体は、型とサイズを指定しますが、継承も ACE フラグも提供しません。

この関数を使用する例については、「 対話型クライアント プロセスの開始」を参照してください。

要件

要件
サポートされている最小のクライアント Windows XP [デスクトップ アプリ | UWP アプリ]
サポートされている最小のサーバー Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ]
対象プラットフォーム Windows
ヘッダー securitybaseapi.h (Windows.h を含む)
Library Advapi32.lib
[DLL] Advapi32.dll

こちらもご覧ください

ACCESS_ALLOWED_ACE

ACE_HEADER

AddAccessAllowedAceEx

AddAccessDeniedAce

AddAce

AddAuditAccessAce

DeleteAce

GetAce

低レベルのAccess Control

低レベルのAccess Control関数