typedef struct _OBJECTS_AND_NAME_W {
DWORD ObjectsPresent;
SE_OBJECT_TYPE ObjectType;
LPWSTR ObjectTypeName;
LPWSTR InheritedObjectTypeName;
LPWSTR ptstrName;
} OBJECTS_AND_NAME_W, *POBJECTS_AND_NAME_W;
这个结构与之前提到的 OBJECTS_AND_NAME_A 结构类似,但是使用了宽字符集。结构的字段包括:
- ObjectsPresent:一个标志位,表示结构中的哪些字段是有效的。可以是以下值的组合:
- SE_OBJECT_TYPE_PRESENT:ObjectType 字段是有效的。
- SE_OBJECT_NAME_PRESENT:ptstrName 字段是有效的。
- SE_OBJECT_TYPE_PRESENT 和 SE_OBJECT_NAME_PRESENT:ObjectType 和 ptstrName 字段都是有效的。
- ObjectType:一个表示对象类型的枚举值,可以是以下之一:
- SE_UNKNOWN_OBJECT_TYPE:未知的对象类型。
- SE_FILE_OBJECT:文件或目录。
- SE_SERVICE:服务。
- SE_PRINTER:打印机。
- 等等,还有其他对象类型。
- ObjectTypeName:一个指向以 NULL 结尾的宽字符字符串的指针,表示对象类型的名称。
- InheritedObjectTypeName:一个指向以 NULL 结尾的宽字符字符串的指针,表示继承的对象类型的名称。
- ptstrName:一个指向以 NULL 结尾的宽字符字符串的指针,表示对象的名称。
这个结构通常用于描述安全描述符的目标对象,例如在函数 SetEntriesInAcl 中设置 ACL 条目时,用于指定要授予或拒绝访问权限的对象。
如果你的应用程序使用 Unicode 字符集,建议使用 OBJECTS_AND_NAME_W 结构。
转载请注明出处:http://www.zyzy.cn/article/detail/23748/Win32 API/Accctrl.h/OBJECTS_AND_NAME_W