aclui.h) (SI_OBJECT_INFO 结构

ISecurityInformation::GetObjectInformation 方法使用SI_OBJECT_INFO结构来指定用于初始化访问控制编辑器的信息。

语法

typedef struct _SI_OBJECT_INFO {
  DWORD     dwFlags;
  HINSTANCE hInstance;
  LPWSTR    pszServerName;
  LPWSTR    pszObjectName;
  LPWSTR    pszPageTitle;
  GUID      guidObjectType;
} SI_OBJECT_INFO, *PSI_OBJECT_INFO;

成员

dwFlags

确定用户可用的编辑选项的一组位标志。 此成员可以是以下值的组合。

含义
SI_ADVANCED
0x00000010L
如果设置了此标志,“ 高级 ”按钮将显示在基本安全属性页上。 如果用户单击此按钮,系统将显示一个 高级安全属性表 ,该表允许对对象的自由 访问控制列表 (DACL) 进行高级编辑。

将此标志与SI_EDIT_AUDITS、SI_EDIT_OWNER和SI_EDIT_PROPERTIES标志相结合,以便编辑对象的 SACL、所有者和特定于对象的 访问控制条目 , (ACE) 。

SI_AUDITS_ELEVATION_REQUIRED
0x02000000L
如果设置了此标志,则会在高级审核页面的“编辑”按钮上显示盾牌。 对于 NTFS 对象,当用户没有 READ_CONTROLACCESS_SYSTEM_SECURITY 访问权限时请求此标志。

Windows Server 2003 和 Windows XP: 不支持此标志。

SI_CONTAINER
0x00000004L
指示对象是容器。 如果设置了此标志,则访问控制编辑器将启用与对子对象的权限继承相关的控件。
SI_DISABLE_DENY_ACE
0x80000000L
如果设置了此标志,系统将禁用拒绝 ACE。 访问控制编辑器的客户端必须实现 ISecurityInformation4 接口才能设置此标志。

Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 不支持此标志。

SI_EDIT_ALL
合并SI_EDIT_PERMS、SI_EDIT_OWNER和SI_EDIT_AUDITS标志。
SI_EDIT_AUDITS
0x00000002L
如果设置了此标志,并且用户单击“ 高级 ”按钮,系统将显示一个高级安全属性表,其中包含用于编辑对象的 SACL 的 Auditing 属性页 。 若要显示“ 高级 ”按钮,请设置SI_ADVANCED标志。
SI_EDIT_EFFECTIVE
0x00020000L
如果设置了此标志,将显示“ 有效权限” 页。 如果初始化访问控制编辑器的 ISecurityInformation 对象未实现 IEffectivePermission 接口,则忽略此标志。
SI_EDIT_OWNER
0x00000001L
如果设置了此标志,并且用户单击“ 高级 ”按钮,则系统将显示一个高级安全属性表,其中包含用于更改对象所有者的 Owner 属性页 。 若要显示“ 高级 ”按钮,请设置SI_ADVANCED标志。
SI_EDIT_PERMS
0x00000000L
这是默认值。 基本安全属性页始终显示用于对对象的 DACL 进行基本编辑的控件。 若要禁用这些控件,请设置SI_READONLY标志。
SI_EDIT_PROPERTIES
0x00000080L
如果设置了此标志,系统将启用用于编辑适用于对象的属性集和属性的 ACE 的控件。 这些控件仅在用户单击“ 高级 ”按钮时显示的属性表中可用。
SI_ENABLE_CENTRAL_POLICY
0x40000000L
如果设置了此标志,系统将启用编辑属性。 访问控制编辑器的客户端必须实现 ISecurityInformation4 接口才能设置此标志。

Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 不支持此标志。

SI_ENABLE_EDIT_ATTRIBUTE_CONDITION
0x20000000L
如果设置了此标志,系统将启用编辑属性。 访问控制编辑器的客户端必须实现 ISecurityInformation4 接口才能设置此标志。

Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 不支持此标志。

SI_MAY_WRITE
0x10000000L
指示访问控制编辑器无法读取 DACL,但可能能够写入 DACL。 如果对 ISecurityInformation::GetSecurity 方法的调用返回 AccessDenied,则用户可以尝试添加新的 ACE,并显示更合适的警告。
SI_NO_ACL_PROTECT
0x00000200L
如果设置了此标志,访问控制编辑器将隐藏允许可继承的 ACE 从父对象传播到此对象的检查框。 如果未设置此标志,则检查框可见。

如果在对象的安全描述符中设置了SE_DACL_PROTECTED标志,则检查框是明确的。 在这种情况下,对象的 DACL 受到保护,防止可继承的 ACE 修改。

如果用户清除检查框,安全描述符中的任何继承 ACE 都会被删除或转换为非继承的 ACE。 在继续此转换之前,系统会显示一个警告消息框来确认更改。

SI_NO_ADDITIONAL_PERMISSION
0x00200000L
如果设置了此标志,访问控制编辑器将隐藏“高级安全设置”页上的“特殊权限”选项卡。
SI_NO_TREE_APPLY
0x00000400L
如果设置了此标志,访问控制编辑器将隐藏控制NO_PROPAGATE_INHERIT_ACE标志的检查框。 仅当还设置了SI_ADVANCED标志时,此标志才相关。
SI_OBJECT_GUID
0x00010000L
设置时,指示 SI_OBJECT_INFO 结构的 guidObjectType 成员有效。 这是在与特定于对象的 ACE 进行比较时设置的,用于确定 ACE 是否应用于当前对象。
SI_OWNER_ELEVATION_REQUIRED
0x04000000L
如果设置了此标志,则会在高级所有者页面的“编辑”按钮上显示盾牌。 对于 NTFS 对象,当用户没有 WRITE_OWNER 访问权限时请求此标志。 仅当请求所有者页时,此标志才有效。

Windows Server 2003 和 Windows XP: 不支持此标志。

SI_OWNER_READONLY
0x00000040L
如果设置了此标志,则用户无法更改对象的所有者。 如果设置了SI_EDIT_OWNER,但用户没有更改所有者的权限,请设置此标志。
SI_OWNER_RECURSE
0x00000100L
将此标志与SI_CONTAINER组合在所有者页上显示一个检查框,该框指示用户是否打算将新所有者应用于所有子对象以及当前对象。 访问控制编辑器不执行递归;递归应由 ISecurityInformation::SetSecurity 中的应用程序执行。
SI_PAGE_TITLE
0x00000800L
如果设置了此标志, pszPageTitle 成员将用作基本安全属性页的标题。 否则,使用默认标题。
SI_PERMS_ELEVATION_REQUIRED
0x01000000L
如果设置了此标志,则会在简单和高级权限页面的“编辑”按钮上显示盾牌图像。 对于 NTFS 对象,当用户没有 READ_CONTROLWRITE_DAC 访问权限时请求此标志。

Windows Server 2003 和 Windows XP: 不支持此标志。

SI_READONLY
0x00000008L
如果设置了此标志,编辑器将显示对象的安全信息,但用于编辑信息的控件将被禁用。

此标志不能与 SI_VIEW_ONLY 标志组合使用。

SI_RESET
0x00000020L
如果设置了此标志,则显示 “默认” 按钮。 如果用户单击此按钮,访问控制编辑器将调用 ISecurityInformation::GetSecurity 方法来检索应用程序定义的默认安全描述符。 访问控制编辑器使用此安全描述符重新初始化属性表,并且允许用户应用更改或取消。
SI_RESET_DACL
0x00040000L
设置后,此标志在“权限”页上显示“重置默认值”按钮。
SI_RESET_DACL_TREE
0x00004000L
设置后,此标志将在“访问控制设置”窗口的“权限”页中显示“重置所有子对象的权限并启用可继承权限检查传播”框。 如果用户单击“应用”按钮时选中此检查框,则会对 ISecurityInformation::SetSecuritySecurityInformation 参数执行按位 OR 操作,SI_RESET_DACL_TREE。 此函数不会重置权限并启用可继承权限的传播; ISecurityInformation 的实现必须执行此操作。
SI_RESET_OWNER
0x00100000L
设置后,此标志在“所有者”页上显示“重置默认值”按钮。
SI_RESET_SACL
0x00080000L
设置后,此标志在“审核”页上显示“重置默认值”按钮。
SI_RESET_SACL_TREE
0x00008000L
设置后,此标志在所有子对象上显示“重置审核条目”,并启用“访问控制设置”窗口的“审核”页检查可继承审核条目的传播。 如果用户单击“应用”按钮时选中此检查框,则会对 ISecurityInformation::SetSecuritySecurityInformation 参数执行位 OR 操作,SI_RESET_SACL_TREE。 此函数不会重置权限并启用可继承权限的传播; ISecurityInformation 的实现必须执行此操作。
SI_SCOPE_ELEVATION_REQUIRED
0x08000000L
如果设置了此标志,则会在 Scope 属性的 “更改 ”按钮上显示盾牌的图像。 对于 NTFS 对象,当用户没有READ_CONTROL或WRITE_DAC访问权限时请求此标志。 访问控制编辑器的客户端必须实现 ISecurityInformation4 接口才能设置此标志。

Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 不支持此标志。

SI_SERVER_IS_DC
0x00001000L
如果 pszServerName 计算机已知是域控制器,请设置此标志。 如果设置了此标志,则域名将包含在 “添加用户和组 ”对话框的范围列表中。 否则, pszServerName 计算机用于确定对话框的范围列表。
SI_VIEW_ONLY
0x00400000L
此标志由访问控制编辑器客户端设置,以显示访问控制编辑器对话框的只读版本。 这些版本的对话框不允许编辑关联对象的权限。 访问控制编辑器的客户端必须实现 ISecurityInformation3 接口才能设置此标志。

此标志不能与 SI_READONLY 标志组合使用。

Windows Server 2003 和 Windows XP: 不支持此标志。

hInstance

标识一个模块,该模块包含要用于属性表的字符串资源。 ISecurityInformation::GetAccessRightsISecurityInformation::GetInheritTypes 方法可以为显示名称指定字符串资源标识符。

pszServerName

指向以 null 结尾的 Unicode 字符串的指针,该字符串命名要在其中查找帐户名和 SID 的计算机。 此值可以为 NULL 以指定本地计算机。 访问控制编辑器不会释放此指针。

pszObjectName

指向以 null 结尾的 Unicode 字符串的指针,该字符串命名正在编辑的对象。 此名称显示在高级安全属性表的标题中,以及访问控制编辑器显示的任何错误消息框。 访问控制编辑器不会释放此指针。

pszPageTitle

指向以 null 结尾的 Unicode 字符串的指针,用作基本安全属性页的标题。 除非在 dwFlags 中设置了SI_PAGE_TITLE标志,否则将忽略此成员。 如果未提供页面标题,则使用默认标题。 访问控制编辑器不会释放此指针。

guidObjectType

对象的 GUID。 除非在 dwFlags 中设置了SI_OBJECT_GUID标志,否则将忽略此成员。

要求

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

另请参阅

ISecurityInformation

ISecurityInformation::GetAccessRights

ISecurityInformation::GetInheritTypes

ISecurityInformation::GetObjectInformation

ISecurityInformation::GetSecurity

ISecurityInformation::SetSecurity