AddAccessDeniedAceEx 関数 (securitybaseapi.h)

AddAccessDeniedAceEx 関数は、随意アクセス制御リスト (DACL) の末尾にアクセス拒否アクセス制御エントリ (ACE) を追加します。

構文

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

パラメーター

[in, out] pAcl

DACL へのポインター。 AddAccessDeniedAceEx 関数は、この DACL の末尾にアクセス拒否 ACE を追加します。 ACE は、 ACCESS_DENIED_ACE 構造体の形式です。

[in] dwAceRevision

変更する DACL のリビジョン レベルを指定します。 この値は、ACL_REVISIONまたはACL_REVISION_DSできます。 DACL にオブジェクト固有の ACE が含まれている場合は、ACL_REVISION_DSを使用します。

[in] AceFlags

ACE 継承を制御するビット フラグのセット。 関数は、新しい ACE のACE_HEADER構造体の AceFlags メンバーにこれらのフラグを設定します。 このパラメーターは、次の値と組み合わせて使用できます。

値 意味
CONTAINER_INHERIT_ACE
ACE はコンテナー オブジェクトによって継承されます。
INHERIT_ONLY_ACE
ACE は 、アクセス制御リスト (ACL) が割り当てられているオブジェクトには適用されませんが、子オブジェクトによって継承できます。
INHERITED_ACE
継承された ACE を示します。 このフラグを使用すると、オブジェクトのツリーのセキュリティを変更する操作で、オブジェクトに直接適用された ACE は変更されず、継承された ACE を変更できます。
NO_PROPAGATE_INHERIT_ACE
OBJECT_INHERIT_ACEビットとCONTAINER_INHERIT_ACE ビットは、継承された ACE には反映されません。
OBJECT_INHERIT_ACE
ACE は、非コンテナー オブジェクトによって継承されます。

[in] AccessMask

新しい ACE が指定したセキュリティ識別子 (SID) に対して拒否するアクセス権を指定するために、ACCESS_MASK形式を使用するビット フラグのセット。

[in] pSid

新しい ACE がアクセスを拒否するユーザー、グループ、または ログオン セッション を識別する SID へのポインター。

戻り値

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

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

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

注釈

AddAccessDeniedAceEx 関数は DACL の末尾に新しい ACE を追加しますが、アクセス拒否 ACE は DACL の先頭に表示されます。 呼び出し元は、ACE が正しい順序で DACL に追加されていることを確認する必要があります。 詳細については、「DACL 内の ACE の順序」を参照してください。

要件

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

こちらもご覧ください

ACCESS_DENIED_ACE

ACCESS_MASK

ACE_HEADER

AddAccessAllowedAceEx

AddAuditAccessAceEx

低レベルのAccess Control

低レベルのAccess Control関数