setUserObjectSecurity 函数 (winuser.h)
SetUserObjectSecurity 函数设置用户对象的安全性。 例如,这可以是窗口或 DDE 对话。
语法
BOOL SetUserObjectSecurity(
[in] HANDLE hObj,
[in] PSECURITY_INFORMATION pSIRequested,
[in] PSECURITY_DESCRIPTOR pSID
);
参数
[in] hObj
为其设置了安全信息的用户对象的句柄。
[in] pSIRequested
指向值的指针,该值指示要设置 的安全描述符 的组件。 此参数可以是以下值的组合。
值 | 含义 |
---|---|
|
(对象的 DACL) 设置 自由访问控制列表 。 hObj 指定的句柄必须具有WRITE_DAC访问权限,或者调用进程必须是对象的所有者。 |
|
设置对象的主要组 安全标识符 (SID) 。 |
|
设置对象的所有者的 SID。 hObj 指定的句柄必须具有WRITE_OWNER访问权限,或者调用进程必须是对象的所有者或启用SE_TAKE_OWNERSHIP_NAME特权。 |
|
(对象的 SACL) 设置 系统访问控制列表 。
hObj 指定的句柄必须具有ACCESS_SYSTEM_SECURITY访问权限。
获取ACCESS_SYSTEM_SECURITY访问权限 |
[in] pSID
指向包含新安全信息的 SECURITY_DESCRIPTOR 结构的指针。
此缓冲区必须在 4 字节边界上对齐。
返回值
如果函数成功,则函数返回非零值。
如果函数失败,则返回零。 要获得更多的错误信息,请调用 GetLastError。
注解
SetUserObjectSecurity 函数将安全描述符中指定的更改应用于分配给用户对象的安全描述符。 对象的安全描述符必须采用 自相对 形式。 如有必要,此函数分配额外的内存以增加安全描述符的大小。
示例
有关使用此函数的示例,请参阅 启动交互式客户端进程。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | winuser.h (包括 Windows.h) |
Library | User32.lib |
DLL | User32.dll |