SECURITY_DESCRIPTOR_CONTROL

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

typedef WORD SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;

备注

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

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

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

含义
SE_DACL_AUTO_INHERIT_REQ
0x0100
指示所需的 安全描述符 ,其中将 DACL) (任意访问控制列表 设置为支持将可继承 的访问控制项 (ACE) 自动传播到现有子对象。
对于支持自动继承的 访问控制列表 (ACL) ,始终设置此位。 受保护的服务器可以调用 ConvertToAutoInheritPrivateObjectSecurity 函数来转换安全描述符并设置此标志。
SE_DACL_AUTO_INHERITED
0x0400
指示一个安全描述符,其中将 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
防止可继承的 ACE 修改安全描述符的 SACL。 若要设置此标志,请使用 SetSecurityDescriptorControl 函数。
SE_SELF_RELATIVE
0x8000
指示 自相对安全描述符。 如果未设置此标志,则安全描述符采用绝对格式。 有关详细信息,请参阅绝对和自我相对安全描述符

要求

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

另请参阅

低级别访问控制

基本访问控制结构

ConvertToAutoInheritPrivateObjectSecurity

GetSecurityDescriptorControl

GetSecurityDescriptorDacl

GetSecurityDescriptorGroup

GetSecurityDescriptorOwner

GetSecurityDescriptorSacl

SetSecurityDescriptorControl

SetSecurityDescriptorDacl

SetSecurityDescriptorGroup

SetSecurityDescriptorOwner

SetSecurityDescriptorSacl