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 的指针。 此函数将 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 |