SetUserObjectSecurity函数设置用户对象的安全性。这可以是例如窗口或DDE对话。
BOOL SetUserObjectSecurity(
HANDLE 【hObjhr】, | //用户对象的句柄 |
PSECURITY_INFORMATION 【pSIRequested】, | //安全信息的地址 |
PSECURITY_DESCRIPTOR 【pSID】 | //安全描述符的地址 |
); |
参数
【hObjhr】
标识设置了安全信息的用户对象。
【pSIRequested】
指向SECURITY_INFORMATION结构,描述正在设置的安全信息。
【pSID】
指向包含新安全信息的SECURITY_DESCRIPTOR结构。
返回值
如果函数成功,返回值不为零。
如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.
备注
SetUserObjectSecurity功能将安全描述符中指定的更改应用于分配给用户对象的安全描述符。对象的安全描述符必须为自相关形式。如果需要,该函数分配额外的内存以增加安全描述符的大小。
只有满足以下条件,SetUserObjectSecurity功能才能成功:
*如果对象的所有者正在设置,则调用进程必须具有WRITE_OWNER权限,或者是对象的所有者。
*如果对象的自由访问控制列表(ACL)被设置,调用进程必须具有WRITE_DAC权限或者是对象的所有者。
*如果对象的系统ACL被设置,则必须为调用进程启用SE_SECURITY_NAME特权。
也可以看看
GetUserObjectSecurity, SECURITY_DESCRIPTOR, SECURITY_INFORMATION, SetFileSecurity, SetKernelObjectSecurity, SetPrivateObjectSecurity