[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