SetEntriesInAcl

【勇芳软件工作室】汉化HomePreviousNext

[New - Windows NT]

SetEntriesInAcl功能通过将新的访问控制或审计控制信息合并到现有的ACL中来创建新的访问控制列表(ACL)。

DWORD SetEntriesInAcl(

ULONG 【cCountOfExplicitEntries】,//列表中的条目数
PEXPLICIT_ACCESS 【pListOfExplicitEntries】,//指向具有新访问数据的条目列表的指针
PACL 【OldAcl】,//指向原始ACL的指针
PACL * 【NewAcl】//接收一个指向新ACL的指针
); 

参数

【cCountOfExplicitEntries】

【pListOfExplicitEntries数组。】中指定EXPLICIT_ACCESS结构的数量

【pListOfExplicitEntries】

指向EXPLICIT_ACCESS结构数组的指针,它们描述要合并到现有ACL中的访问控制信息。

【OldAcl】

指向现有ACL。此参数可以为NULL,在这种情况下,该函数将根据EXPLICIT_ACCESS条目创建一个新的ACL。

【NewAcl】

指向接收到新ACL的指针的变量的指针。如果函数成功,则必须调用LocalFree函数来释放返回的缓冲区。

返回值

如果函数成功,则返回值为ERROR_SUCCESS。

如果函数失败,返回值是在WINERROR.H中定义的非零错误代码。

备注

EXPLICIT_ACCESS结构数组中的每个条目都为指定的受托人指定访问控制或审计控制信息。受托人可以是用户,组或其他SID值,例如登录标识符或登录类型(例如,Windows NT服务或批处理作业)。您可以使用名称或安全标识符(SID)标识受托人。

您可以使用SetEntriesInAcl功能来修改DACL或SACL中的ACE列表。DACL控制对对象的访问,并且SACL控制系统审核访问对象的尝试。请注意,SetEntriesInAcl不会阻止您将访问控制和审核控制信息混合在同一ACL中;但是,生成的ACL将包含无意义的条目。

对于DACL,EXPLICIT_ACCESS结构的grfAccessMode成员指定是否允许,拒绝或撤消受托人的访问权限。此成员可以从ACCESS_MODE枚举中指定以下值之一。

含义
GRANT_ACCESS创建一个新的访问允许的ACE,将指定的权限与受托人的任何现有权限相结合。新的ACE替换受托人的任何现有的访问允许的ACE。该函数还会修改或删除拒绝指定权限的受托人的任何现有访问被拒绝的ACE。
SET_ACCESS类似于GRANT_ACCESS,除了新的访问允许的ACE仅允许指定的权限,丢弃任何现有权限。此标志还会删除受托人的任何现有访问被拒绝的ACE。
DENY_ACCESS创建一个新的访问被拒绝的ACE,替换受信任者的任何现有的拒绝访问的ACE。除了受托人的任何当前被拒绝的权利之外,新的ACE还拒绝指定的权利。该函数还会修改或删除允许指定权限的受托人的任何现有的访问允许ACE。
REVOKE_ACCESS删除指定受托人的任何现有ACE。该函数忽略EXPLICIT_ACCESS结构grfAccessPermissions成员中指定的权限。

SetEntriesInAcl功能将新的访问被拒绝的ACE放置在新的ACL的ACE列表的开头。它将任何新的访问允许的ACE放置在任何现有的访问允许的ACE之前。

对于SACL,EXPLICIT_ACCESS结构的grfAccessMode成员可以指定以下值。

含义
REVOKE_ACCESS删除指定受托人的任何现有ACE。该函数忽略grfAccessPermissions结构grfAccessPermissions成员中指定的权限。
SET_AUDIT_SUCCESS创建一个新的系统审核ACE,以替换受信任者的任何现有系统审计ACE。当指定的受信任方成功使用指定的访问权限时,新的ACE会生成审核消息。新的ACE将指定的权限与受托人的任何现有经审核的访问权限相结合。您可以将此值与SET_AUDIT_FAILURE组合。
SET_AUDIT_FAILURE创建一个新的系统审核ACE,以替换受信任者的任何现有系统审计ACE。新的ACE会生成审核消息,以尝试使用指定的访问权限。新的ACE将指定的权限与受托人的任何现有经审核的访问权限相结合。您可以将此值与SET_AUDIT_SUCCESS组合。

SetEntriesInAcl功能将任何新的系统审核ACE放置在新ACL的ACE列表的开头。

也可以看看

ACCESS_ALLOWED_ACE, ACCESS_DENIED_ACE, ACL, EXPLICIT_ACCESS, LocalFree, SYSTEM_AUDIT_ACE