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 的指针。 此函数将 ACE 添加到此 ACL。
此参数的值不能为 NULL。
[in] dwAceRevision
指定要修改的 ACL 的修订级别。 此值可以ACL_REVISION或ACL_REVISION_DS。 如果 ACL 包含特定于对象的 ACE,请使用 ACL_REVISION_DS。
[in] AceFlags
一组控制 ACE 继承的位标志。 函数在新 ACE 的 ACE_HEADER 结构的 AceFlags 成员中设置这些标志。 此参数可以是以下值的组合。
[in] AceType
ACE 的类型。
这可以是以下值之一。
| 值 | 含义 | 
|---|---|
| 
 | 使用 ACCESS_ALLOWED_CALLBACK_ACE 结构的允许访问的回调 ACE。 | 
| 
 | 使用 ACCESS_DENIED_CALLBACK_ACE 结构的拒绝访问回调 ACE。 | 
| 
 | 使用 SYSTEM_AUDIT_CALLBACK_ACE 结构的系统审核回调 ACE。 | 
[in] AccessMask
指定要授予指定 SID 的访问权限的掩码。
[in] pSid
指向 SID 的指针,该 SID 表示被授予访问权限的用户、组或登录帐户。
[in] ConditionStr
一个字符串,指定要为 ACE 计算的条件语句。
[out] ReturnLength
ACL 的大小(以字节为单位)。 如果 pACL 参数指定的缓冲区大小不足,则此参数的值是所需的大小。
返回值
如果函数成功,则返回 TRUE。
如果函数失败,则返回 FALSE。 有关扩展的错误信息,请调用 GetLastError。 下面是可能的错误值。
| 返回代码 | 说明 | 
|---|---|
| 
 | 新的 ACE 不适合 pAcl 缓冲区。 | 
要求
| 要求 | 值 | 
|---|---|
| 最低受支持的客户端 | Windows 7 [仅限桌面应用] | 
| 最低受支持的服务器 | Windows Server 2008 R2 [仅限桌面应用] | 
| 目标平台 | Windows | 
| 标头 | winbase.h (包括 Windows.h) | 
| Library | Advapi32.lib | 
| DLL | Advapi32.dll |