EXPLICIT_ACCESS_A 结构 (accctrl.h)

EXPLICIT_ACCESS结构定义指定受信人的访问控制信息。 访问控制函数(如 SetEntriesInAclGetExplicitEntriesFromAcl)使用此结构描述 访问控制项 中的信息, (ACE) 访问控制 列表 (ACL) 。

语法

typedef struct _EXPLICIT_ACCESS_A {
  DWORD       grfAccessPermissions;
  ACCESS_MODE grfAccessMode;
  DWORD       grfInheritance;
  TRUSTEE_A   Trustee;
} EXPLICIT_ACCESS_A, *PEXPLICIT_ACCESS_A, EXPLICIT_ACCESSA, *PEXPLICIT_ACCESSA;

成员

grfAccessPermissions

一组位标志,使用 ACCESS_MASK 格式指定 ACE 允许、拒绝或审核受信人的访问权限。 使用 EXPLICIT_ACCESS 结构的函数不会转换、解释或验证此掩码中的位。

grfAccessMode

来自ACCESS_MODE枚举的值。 对于 DACL) (自由访问控制列表 ,此标志指示 ACL 是允许还是拒绝指定的访问权限。 对于系统 访问控制列表 (SACL) ,此标志指示 ACL 是针对成功尝试使用指定访问权限生成审核消息,还是为失败的尝试生成两者。 修改现有 ACL 时,可以指定REVOKE_ACCESS标志,以删除指定受信人的任何现有 ACE。

grfInheritance

一组位标志,用于确定其他容器或对象是否可以从 ACL 附加到的主对象继承 ACE。 此成员的值对应于继承部分 (ACE_HEADER结构的 AceFlags 成员的低阶字节 ) 。 可以NO_INHERITANCE此参数以指示 ACE 不可继承;也可以是以下值的组合。

含义
CONTAINER_INHERIT_ACE
主对象包含的其他容器继承 ACE。
INHERIT_NO_PROPAGATE
继承但不传播。
INHERIT_ONLY
仅继承。
INHERIT_ONLY_ACE
ACE 不适用于 ACL 附加到的主对象,但主对象包含的对象将继承 ACE。
NO_INHERITANCE
请勿继承。
NO_PROPAGATE_INHERIT_ACE
OBJECT_INHERIT_ACE和CONTAINER_INHERIT_ACE标志不会传播到继承的 ACE。
OBJECT_INHERIT_ACE
主对象包含的非容器对象继承 ACE。
SUB_CONTAINERS_AND_OBJECTS_INHERIT
主对象包含的容器和非容器对象都继承 ACE。 此标志对应于CONTAINER_INHERIT_ACE和OBJECT_INHERIT_ACE标志的组合。
SUB_CONTAINERS_ONLY_INHERIT
主对象包含的其他容器继承 ACE。 此标志对应于 CONTAINER_INHERIT_ACE 标志。
SUB_OBJECTS_ONLY_INHERIT
主对象包含的非容器对象继承 ACE。 此标志对应于OBJECT_INHERIT_ACE标志。

Trustee

一种用于标识用户、组或程序 ((如应用 ACE 的 Windows 服务) )的 TRUSTEE 结构。

注解

注意

accctrl.h 标头将EXPLICIT_ACCESS_定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
标头 accctrl.h

另请参阅

ACCESS_MASK

ACCESS_MODE

Ace

ACE_HEADER

ACL

BuildExplicitAccessWithName

BuildSecurityDescriptor

GetExplicitEntriesFromAcl

LookupSecurityDescriptorParts

SetEntriesInAcl

受托 人