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 を呼び出します。 考えられるエラー値を次に示します。
リターン コード | 説明 |
---|---|
|
新しい ACE は ACL に適合しません。 より大きな ACL バッファーが必要です。 |
|
指定された ACL が正しく形成されていません。 |
|
指定された SID が構造的に有効ではありません。 |
|
指定されたリビジョンが不明であるか、ACL のリビジョンと互換性がありません。 |
|
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 |