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関数