【发布时间】:2010-11-30 12:11:25
【问题描述】:
考虑一下:Mutex Class (MSDN)
(并使用 Sysinternals 的 WinObj。)
我如何为创建它的会话以外的会话创建互斥锁?
即从会话 0 中的系统服务,在会话 1 中创建互斥锁?
我尝试使用
创建互斥锁\Sessions\1\BaseNamedObjects\myName
但这失败了。
是否可以直接写入 WinObj 中显示的 Windows 对象命名空间的根?
【问题讨论】:
-
会话对象只能由在该会话中运行的进程创建,至少从用户模式;我不知道您是否可以在内核驱动程序中执行此操作。但是你为什么要这样做呢?乱搞你自己以外的会话是不好的行为。
-
我想通过系统服务以编程方式在用户会话中访问和创建突变体。我不明白为什么这不可能。事实上,我可以 CreateProcessAsUser 将一个进程注入到用户的会话中,以代表我的服务执行这些任务,这给了我同样的效果。如果可能,我更愿意直接从服务中操作对象。