AddConditionalAce 関数 (winbase.h)

AddConditionalAce 関数は、条件付きアクセス制御エントリ (ACE) を指定されたアクセス制御リスト (ACL) に追加します。 条件付き ACE は、アクセス チェック中に評価される論理条件を指定します。

構文

BOOL AddConditionalAce(
  [in, out] PACL   pAcl,
  [in]      DWORD  dwAceRevision,
  [in]      DWORD  AceFlags,
  [in]      UCHAR  AceType,
  [in]      DWORD  AccessMask,
  [in]      PSID   pSid,
  [in]      PWCHAR ConditionStr,
  [out]     DWORD  *ReturnLength
);

パラメーター

[in, out] pAcl

ACL へのポインター。 この関数は、この ACL に ACE を追加します。

このパラメーターの値を NULL にすることはできません。

[in] dwAceRevision

変更する ACL のリビジョン レベルを指定します。 この値は、ACL_REVISIONまたはACL_REVISION_DSできます。 ACL にオブジェクト固有の 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] AceType

ACE の型。

これには、次のいずれかの値を指定できます。

意味
ACCESS_ALLOWED_CALLBACK_ACE_TYPE
0x9
ACCESS_ALLOWED_CALLBACK_ACE構造体を使用するアクセス許可コールバック ACE。
ACCESS_DENIED_CALLBACK_ACE_TYPE
0xA
ACCESS_DENIED_CALLBACK_ACE構造体を使用するアクセス拒否コールバック ACE。
SYSTEM_AUDIT_CALLBACK_ACE_TYPE
0xD
SYSTEM_AUDIT_CALLBACK_ACE構造体を使用するシステム監査コールバック ACE。

[in] AccessMask

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

[in] pSid

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

[in] ConditionStr

ACE に対して評価される条件ステートメントを指定する文字列。

[out] ReturnLength

ACL のサイズ (バイト単位)。 pACL パラメーターで指定されたバッファーのサイズが十分でない場合は、このパラメーターの値が必要なサイズになります。

戻り値

関数が成功すると、 TRUE が返されます。

関数が失敗すると、 FALSE が返されます。 拡張エラー情報については、 GetLastError を呼び出します。 考えられるエラー値を次に示します。

リターン コード 説明
ERROR_INSUFFICIENT_BUFFER
新しい ACE は pAcl バッファーに収まりません。

要件

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