在我的manager.exe中,我正在尝试更改worker.exe的CPU使用率,这是由我的service.exe启动的。 Service.exe在系统帐户下运行,而manager.exe在登录用户的帐户下运行。
当我使用worker.exe的PID调用manager.exe中的OpenProcess时,procHandle得到NULL:
HANDLE procHandle = OpenProcess(PROCESS_SET_INFORMATION,0,pid);
使用GetLastError()我看到我遇到了Access Denied错误。
有什么方法吗?我可以以某种方式修改worker.exe以授予其他进程完全控制自己吗?
答案 0 :(得分:0)
您不必致电OpenProcess
。
该服务应该在调用CreateProcessAsUser
或CreateProcessWithLogonW
时已拥有对该工作者的完全权限句柄。使用DuplicateHandle
使该句柄的版本适合管理器进程使用,然后让服务将该句柄发送给管理器。该服务已经掌握了经理,对吧?它需要DuplicateHandle
。
或让经理要求服务部门更改工作流程。