[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