GetNamedSecurityInfo

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

[New - Windows NT]

GetNamedSecurityInfo函数检索由name指定的对象的安全描述符副本。

DWORD GetNamedSecurityInfo(

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

参数

【pObjectName】

指向以null结尾的字符串,指定从中检索安全信息的对象的名称。有关不同对象类型的字符串格式的说明,请参阅SE_OBJECT_TYPE.

【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的指针】【//接收指向主组SID的指针】【//接收一个指向DACL的指针】【//接收一个指向SACL的指针】【//接收一个指向SACL的指针】参数为非空,并且{返回【ppSecurityDescriptor】.

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

也可以看看

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