一个进程可以向另一个进程在不同用户名下创建的事件发出信号(两个进程在不同用户名下运行)吗?

发布于 2024-12-28 17:53:49 字数 413 浏览 0 评论 0原文

发生在 Windows 7 中:

我已安装进程 proc1.exe 作为服务。在 proc1 中,我通过创建会话 id 和令牌并传递给 CreateProcessAsUser() 来创建新进程 proc2.exe。

在 Proc2 中,我正在创建一个正在等待信号的事件。 在 Proc1 中,当我停止服务时,我通过 OpenEvent 和 SetEvent 向该事件发送信号。

如果我启动服务,proc1.exe 在系统用户名下运行,proc2.exe 在登录用户名(任务管理器)下运行。

当我停止服务时,Proc1 尝试通过调用 OpenEvent 发送信号。但 OpenEvent 返回 NULL。

两个进程都在不同的用户下运行。访问该事件有问题吗? 如果是这样,如何在不同进程和用户下发出事件信号? 请帮我找出答案......

Happening in Windows 7:

I have installed process proc1.exe as service.In the proc1, i am creating new process proc2.exe by creating session id and token and passing to CreateProcessAsUser().

In the Proc2, i am creating one event which is waiting for signal.
In the Proc1, am sending the signal to that event by OpenEvent and SetEvent when i stop service.

if i start service, proc1.exe is running under SYSTEM username and proc2.exe is running under loggedin username(Taskmanager).

When i stop service, Proc1 is trying to send signal by calling OpenEvent. But OpenEvent returns NULL.

Both processes are running under different user. is it a problem to access that event ?
if so, how to signal the event under different process and user ?
PLease help me to find out.....

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一场信仰旅途 2025-01-04 17:53:49

您的事件可能是创建它的会话的本地事件,即,如果 Proc2 创建了一个名为“ShutdownSystem”的事件,则该事件仅对该会话中的其他进程已知,就像函数中的局部变量一样。

如果您希望事件对象以全局方式存在并可从其他会话访问,则应在其前面加上“Global\”前缀(例如将其命名为“Global\ShutdownSystem”)。然后系统将在全局命名空间中创建它。

Your event is probably local to the session where it's created, i.e. if Proc2 created an event named "ShutdownSystem", then that event is only known to other processes within that session, much like local variables in a function.

If you want your event object to exist in a global manner and be accessible from other sessions, you should prefix it with "Global\" (e.g. name it "Global\ShutdownSystem"). The system would then create it in the global namespace.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文