以下是 SI_INHERIT_TYPE 结构的定义:
typedef struct _SI_INHERIT_TYPE {
GUID *pguid;
ULONG eInherit;
LPCWSTR pszName;
} SI_INHERIT_TYPE, *PSI_INHERIT_TYPE;
各个成员的含义如下:
- pguid: 一个指向 GUID 结构的指针,表示继承类型的组。
- eInherit: 一个表示继承类型的值,可以是以下之一:
- CONTAINER_INHERIT_ACE: ACE 可以被容器对象继承。
- OBJECT_INHERIT_ACE: ACE 可以被非容器对象继承。
- NO_PROPAGATE_INHERIT_ACE: ACE 不传播给子对象。
- INHERIT_ONLY_ACE: ACE 只能被子对象继承。
- INHERITED_ACE: ACE 是继承的。
- VALID_INHERIT_FLAGS: 有效的继承标志掩码。
- pszName: 一个指向以 NULL 结尾的 Unicode 字符串的指针,表示继承类型的名称。
SI_INHERIT_TYPE 结构通常用于初始化 EXPLICIT_ACCESS 结构,而后者用于定义访问控制项(ACE)。EXPLICIT_ACCESS 结构包含 grfInheritance 成员,该成员包含一个继承类型的值,可以通过将 SI_INHERIT_TYPE 结构的 eInherit 值赋给 grfInheritance 来设置继承属性。
这些结构和相关的函数主要用于在 Windows 上进行访问控制列表(ACL)和安全性标识符(SID)的管理。在具体的应用程序中,您可能会在创建或修改文件、目录等对象的安全性设置时用到这些结构。
转载请注明出处:http://www.zyzy.cn/article/detail/23781/Win32 API/Aclui.h/SI_INHERIT_TYPE