AddAccessDeniedAce 関数 (securitybaseapi.h)

AddAccessDeniedAce 関数は、アクセス拒否アクセス制御エントリ (ACE) をアクセス制御リスト (ACL) に追加します。 指定された セキュリティ識別子 (SID) へのアクセスが拒否されます。

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

構文

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

パラメーター

[in, out] pAcl

ACL へのポインター。 この関数は、アクセス拒否 ACE をこの ACL の末尾に追加します。 ACE は、 ACCESS_DENIED_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 が正常に追加されました。

注釈

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

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

AddAccessDeniedAce によって追加された ACE は継承できません。

要件

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

こちらもご覧ください

ACCESS_DENIED_ACE

ACE_HEADER

ACL

AddAccessAllowedAce

AddAccessDeniedAceEx

AddAce

AddAuditAccessAce

DeleteAce

GetAce

低レベルのAccess Control

低レベルのAccess Control関数