GetSecurityInfo

【勇芳软件工作室】汉化HomePreviousNext

[New - Windows NT]

GetSecurityInfo函数检索由句柄指定的对象的安全描述符的副本。

// handle to the object

HANDLE 【处理】,//对象的句柄
SE_OBJECT_TYPE 【ObjectType】,//对象类型
SECURITY_INFORMATION 【SecurityInfo】,//要检索的安全性信息的类型
PSID *【//接收一个指向所有者SID的指针】,//接收一个指向所有者SID的指针
PSID *【//接收指向主组SID的指针】,//接收指向主组SID的指针
PACL *【//接收一个指向DACL的指针】,//接收一个指向DACL的指针
PACL *【//接收一个指向SACL的指针】,//接收一个指向SACL的指针
PSECURITY_DESCRIPTOR *【ppSecurityDescriptor】//接收一个指向安全描述符的指针
); 

参数

【处理】

用于检索安全信息的对象的句柄。

【ObjectType】

指定SE_OBJECT_TYPE枚举中指示由【pObjectName】参数命名的对象的类型的值。

【SecurityInfo】

一组SECURITY_INFORMATION位标志,表示要检索的安全信息的类型。此参数可以是以下值的组合。

含义
OWNER_SECURITY_INFORMATION如果设置了此标志,则【//接收一个指向所有者SID的指针】参数将接收对象所有者的安全标识符(SID)。
GROUP_SECURITY_INFORMATION如果设置此标志,则【//接收指向主组SID的指针】参数将接收该对象的主组的SID。
DACL_SECURITY_INFORMATION如果设置了此标志,则【//接收一个指向DACL的指针】参数将接收对象的自由访问控制列表(DACL)。
SACL_SECURITY_INFORMATION如果设置此标志,则【//接收一个指向SACL的指针】参数接收对象的系统访问控制列表(SACL)..

【//接收一个指向所有者SID的指针】

指向【ppSecurityDescriptor】中返回的安全描述符中指向所有者SID的变量的变量。返回的指针只有在设置了OWNER_SECURITY_INFORMATION标志时才有效。如果不需要所有者SID,则此参数可以为NULL。

【//接收指向主组SID的指针】

指向在返回的安全描述符中接收指向主组SID的指针的变量的指针。返回的指针只有在设置了GROUP_SECURITY_INFORMATION标志时才有效。如果不需要组SID,则此参数可以为NULL。

【//接收一个指向DACL的指针】

指向在返回的安全描述符中接收到DACL的指针的变量的指针。只有设置了DACL_SECURITY_INFORMATION标志,返回的指针才有效。如果不需要DACL,此参数可以为NULL。

【//接收一个指向SACL的指针】

指向在返回的安全描述符中接收指向SACL的指针的变量的指针。返回的指针只有在设置了SACL_SECURITY_INFORMATION标志时才有效。如果不需要SACL,此参数可以为NULL。

【ppSecurityDescriptor】

指向接收到对象安全描述符的指针的变量的指针。您必须调用LocalFree函数来释放返回的缓冲区。

返回值

如果函数成功,则返回值为ERROR_SUCCESS。

如果函数失败,返回值是在WINERROR.H中定义的非零错误代码。

备注

如果【//接收指向主组SID的指针】【//接收一个指向DACL的指针】【//接收一个指向DACL的指针】【//接收一个指向DACL的指针】【//接收一个指向DACL的指针】参数为非空,并且【SecurityInfo】参数指定它们从对象中检索,则这些参数将指向安全描述符中的相应参数返回【ppSecurityDescriptor】.

要读取对象的所有者,组和DACL,调用者必须具有READ_CONTROL访问权限,或者是对象的所有者。调用者必须启用SE_SECURITY_NAME特权才能读取S ACL。

也可以看看

ACL, GetNamedSecurityInfo, LocalFree, SE_OBJECT_TYPE, SECURITY_DESCRIPTOR, SECURITY_INFORMATION, SetNamedSecurityInfo, SetSecurityInfo, SID