GetSecurityInfo
来源:互联网 发布:俄罗斯域名注册 编辑:程序博客网 时间:2024/04/29 23:12
By Adam
ISecurityInformation::GetSecurity
该函数通过句柄找到某一对象,并获取该对象的安全描述符。
DWORD GetSecurityInfo(
HANDLE handle,
SE_OBJECT_TYPE ObjectType,
SECURITY_INFORMATION SecurityInfo,
PSID* ppsidOwner,
PSID* ppsidGroup,
PACL* ppDacl,
PACL* ppSacl,
PSECURITY_DESCRIPTOR* ppSecurityDescriptor
);
变量
handle
[in] 该句柄变量用以指定GetSecurityInfo函数将获取哪个对象的安全描述符。
ObjectType
[in]指定对象类型的枚举型变量
SecurityInfo
[i]指定函数所获得的安全信息的类型,可以取以下值。
[out] ppsidOwner是指向安全描述符中SID所有者的指针,该指针将返回到ppSecurityDescriptor。仅当对SecurityInfo设置了OWNER_SECURITY_INFORMATION时返回指针才有效。如果不需要SID所有者,该变量设置为NULL。
ppsidGroup[out] ppsidGroup是指向primary group SID的指针,该指针返回到ppSecurityDescriptor。仅当对SecurityInfo设置了GROUP_SECURITY_INFORMATION时返回指针才有效。如果不需要group SID,该变量设置为NULL。
[out] ppDacl是指向DACL的指针,该指针返回到ppSecurityDescriptor。仅当对SecurityInfo设置了DACL_SECURITY_INFORMATION时返回指针才有效。如果不需要DACL
,该变量设置为NULL。
[out] ppSacl是指向SACL的指针,该指针返回到ppSecurityDescriptor。仅当对SecurityInfo设置了SACL_SECURITY_INFORMATION时返回指针才有效。如果不需要SACL
,该变量设置为NULL。
ppSecurityDescriptor
返回值
如果函数成功,返回值为ERROR_SUCCESS。
如果函数失败,返回值为非零值,具体定义在Winerror.h中。
附注
如果ppsidOwner,ppsidGroup,ppDacl,以及ppSacl都是非空,并且SwcurityInfo指定了相应的类型,则前述的各个变量将接受其对应的指针,这些指针返回到ppSecurityDescriptor中。
当句柄被打开后,要从对象的安全描述符中读取Owner,group,或者DACL,调用程序必须得到读控制访问的许可。要得到读控制访问的许可,调用者必须是对象的拥有者或者对象的DACL必须被授予访问权。
当句柄被打开后,要从安全描述符中读取SACL,调用程序必须被授予ACCESS_SYSTEM_SECURITY的访问权。获得这个权限的适当方法是启用SE_SECURIYT_NAME特权,打开ACCESS_SYSTEM_SECURITY句柄,接着关闭特权。
需求
Declared in Aclapi.h.
Link to Advapi32.lib.
- GetSecurityInfo
- GetSecurityInfo DACL pinvoke advapi32
- SHELL入门
- Sonar入门(二): Maven集成Sonar
- PowerDesigner使用教程
- Delphi XE5 Android 程序退出功能
- 代理服务器的概念及其工作原理
- GetSecurityInfo
- 《感遇·其一》 作者:张九龄
- 来八一八程序员
- Delphi XE5 与其他版本共存
- Ubuntu下安装go语言
- C++那些基础性的东西
- 利用expect自动交互命令实现mysql登陆
- Sonar入门(三): Ant集成Sonar
- Android Fragment完全解析,关于碎片你所需知道的一切