[New - Windows NT]
SetSecurityInfo函数在指定对象的安全描述符中设置指定的安全信息。调用者通过句柄识别对象。
DWORD SetSecurityInfo
HANDLE 【处理】, | //对象的句柄 |
SE_OBJECT_TYPE 【ObjectType】, | //对象类型 |
SECURITY_INFORMATION 【SecurityInfo】, | //要设置的安全信息类型 |
PSID 【psidOwner】, | //指向新所有者SID的指针 |
PSID 【psidGroup】, | //指向新的主组SID的指针 |
PACL 【pDacl】, | //指向新DACL的指针 |
PACL 【pSacl】 | //指向新的SACL的指针 |
); |
参数
【处理】
用于设置安全信息的对象的句柄。
【ObjectType】
指定SE_OBJECT_TYPE枚举中指示由【处理】参数标识的对象类型的值。
【SecurityInfo】
一组SECURITY_INFORMATION位标志,表示要设置的安全性信息的类型。此参数可以是以下值的组合。
值 | 含义 |
OWNER_SECURITY_INFORMATION | 在对象的安全描述符中设置所有者安全标识符(SID)。【psidOwner】参数指向新的SID。 |
GROUP_SECURITY_INFORMATION | 在对象的安全描述符中设置主组SID。【psidGroup】参数指向新的SID。 |
DACL_SECURITY_INFORMATION | 在对象的安全描述符中设置自由访问控制列表(DACL)。【pDacl】参数指向新的DACL。 |
SACL_SECURITY_INFORMATION | 在对象的安全描述符中设置系统访问控制列表(SACL)。【pSacl】参数指向新的SACL。 |
【psidOwner】
指向识别对象所有者的SID的指针。SID必须是可以分配为安全描述符的所有者SID的SID。【SecurityInfo】参数必须包含OWNER_SECURITY_INFORMATION标志。调用者必须对该对象具有WRITE_OWNER访问权限或启用SE_TAKE_OWNERSHIP_NAME权限。如果不设置所有者SID,则此参数可以为NULL。
【psidGroup】
指向标识对象的主组的SID的指针。【SecurityInfo】参数必须包含GROUP_SECURITY_INFORMATION标志。如果不设置主组SID,则此参数可以为NULL。
【pDacl】
指向新DACL的对象。【SecurityInfo】参数必须包含DACL_SECURITY_INFORMATION标志。调用者必须对该对象具有WRITE_DAC访问权限,或者是该对象的所有者。如果不设置DACL,此参数可以为NULL。
【pSacl】
指向对象的新SACL。【SecurityInfo】参数必须包含SACL_SECURITY_INFORMATION标志。主叫方必须启用SE_SECURITY_NAME特权。如果不设置SACL,此参数可以为NULL。
返回值
如果函数成功,则返回值为ERROR_SUCCESS。
如果函数失败,返回值是在WINERROR.H中定义的非零错误代码。
也可以看看
ACL, GetNamedSecurityInfo, GetSecurityInfo, SE_OBJECT_TYPE, SECURITY_DESCRIPTOR, SECURITY_INFORMATION, SetNamedSecurityInfo, SID