SECURITY_DESCRIPTOR_CONTROL

SECURITY_DESCRIPTOR_CONTROL数据类型是一组位标志,符合安全描述符或其组件的含义。 每个安全描述符都有一个 控制 成员,用于存储 SECURITY_DESCRIPTOR_CONTROL 位。

typedef WORD SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;

注解

若要获取安全描述符的控制位,请调用 GetSecurityDescriptorControl 函数。 若要设置安全描述符的控制位,请使用函数修改安全描述符。 有关这些函数的列表,请参阅“另请参阅”部分。

应用程序可以使用 SetSecurityDescriptorControl 函数设置与 ACE 自动继承相关的控制位。

GetSecurityDescriptorControl 函数检索的控件值可以包含以下SECURITY_DESCRIPTOR_CONTROL位标志的组合。

含义
SE_DACL_AUTO_INHERIT_REQ
0x0100
指示所需的 安全描述符 ,其中设置了 DACL (DACL) 的任意访问控制列表 ,以支持向现有子对象 (ACE) 可继承 访问控制条目 的自动传播。
对于支持自动继承的 访问控制列表 (ACL) ,始终设置此位。 受保护的服务器可以调用 ConvertToAutoInheritPrivateObjectSecurity 函数来转换安全描述符并设置此标志。
SE_DACL_AUTO_INHERITED
0x0400
指示一个安全描述符,其中设置了 DACL) (DACL) 的任意访问控制列表 ,以支持向现有子对象 (ACE) 可继承 访问控制条目 的自动传播。
对于支持自动继承的 访问控制列表 (ACL) ,始终设置此位。 受保护的服务器可以调用 ConvertToAutoInheritPrivateObjectSecurity 函数来转换安全描述符并设置此标志。
SE_DACL_DEFAULTED
0x0008
指示具有默认 DACL 的安全描述符。 例如,如果创建者一个对象未指定 DACL,该对象将从创建者的 访问令牌 接收默认 DACL。 此标志可能会影响系统如何处理 ACE 继承的 DACL。 如果未设置SE_DACL_PRESENT标志,系统将忽略此标志。
此标志用于确定要计算对象的最终 DACL 的方式,并且不会在安全对象的安全描述符控件中物理存储。
若要设置此标志,请使用 SetSecurityDescriptorDacl 函数。
SE_DACL_PRESENT
0x0004
指示具有 DACL 的安全描述符。 如果未设置此标志,或者设置此标志并且 DACL 为 NULL,则安全描述符允许完全访问每个人。
此标志用于保存调用方指定的安全信息,直到安全描述符与安全对象相关联。 安全描述符与安全对象关联后,始终在安全描述符控件中设置SE_DACL_PRESENT标志。
若要设置此标志,请使用 SetSecurityDescriptorDacl 函数。
SE_DACL_PROTECTED
0x1000
阻止可继承的 ACE 修改安全描述符的 DACL。 若要设置此标志,请使用 SetSecurityDescriptorControl 函数。
SE_GROUP_DEFAULTED
0x0002
指示安全描述符组 的安全标识符 (SID) 是由默认机制提供的。 资源管理器可以使用此标志来标识其安全描述符组由默认机制设置的对象。 若要设置此标志,请使用 SetSecurityDescriptorGroup 函数。
SE_OWNER_DEFAULTED
0x0001
指示安全描述符所有者的 SID 是由默认机制提供的。 资源管理器可以使用此标志来标识所有者由默认机制设置的对象。 若要设置此标志,请使用 SetSecurityDescriptorOwner 函数。
SE_RM_CONTROL_VALID
0x4000
指示资源管理器控件有效。
SE_SACL_AUTO_INHERIT_REQ
0x0200
指示系统 访问控制列表 (SACL) 设置所需的安全描述符,以支持将可继承 ACE 自动传播到现有子对象。
当系统为对象及其现有子对象执行自动继承算法时,系统会设置此位。 若要转换安全描述符并设置此标志,受保护的服务器可以调用 ConvertToAutoInheritPrivateObjectSecurity 函数。
SE_SACL_AUTO_INHERITED
0x0800
指示 系统访问控制列表 (SACL) 设置的安全描述符,以支持将可继承 ACE 自动传播到现有子对象。
当系统为对象及其现有子对象执行自动继承算法时,系统会设置此位。 若要转换安全描述符并设置此标志,受保护的服务器可以调用 ConvertToAutoInheritPrivateObjectSecurity 函数。
SE_SACL_DEFAULTED
0x0008
提供 SACL 的默认机制,而不是安全描述符的原始 提供程序 。 此标志可能会影响系统如何处理 ACE 继承的 SACL。 如果未设置SE_SACL_PRESENT标志,系统将忽略此标志。 若要设置此标志,请使用 SetSecurityDescriptorSacl 函数。
SE_SACL_PRESENT
0x0010
指示具有 SACL 的安全描述符。 若要设置此标志,请使用 SetSecurityDescriptorSacl 函数。
SE_SACL_PROTECTED
0x2000
防止安全描述符的 SACL 被可继承的 ACE 修改。 若要设置此标志,请使用 SetSecurityDescriptorControl 函数。
SE_SELF_RELATIVE
0x8000
指示 自相对安全描述符。 如果未设置此标志,则安全描述符采用绝对格式。 有关详细信息,请参阅 绝对和Self-Relative安全描述符

要求

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

另请参阅

低级别访问控制

基本访问控制结构

ConvertToAutoInheritPrivateObjectSecurity

GetSecurityDescriptorControl

GetSecurityDescriptorDacl

GetSecurityDescriptorGroup

GetSecurityDescriptorOwner

GetSecurityDescriptorSacl

SetSecurityDescriptorControl

SetSecurityDescriptorDacl

SetSecurityDescriptorGroup

SetSecurityDescriptorOwner

SetSecurityDescriptorSacl