优先获取互斥锁提升进程

Acquire mutex with preference for elevated process

本文关键字:进程 获取      更新时间:2023-10-16

我有一个互斥体,以避免多个进程同时运行,一旦互斥体被释放,这些进程可能会等待启动。现在,我可以有一些实例尝试获取互斥器提升和非提升。我希望提升的进程能够在持有锁的进程释放互斥锁后,在非提升进程之前获取互斥体。

不太可能,但我想考虑许多实例是非提升的,许多实例是提升的,它们竞争相同的互斥锁以提供一些健壮的东西。

实现这一目标的良好稳健方法是什么?

该问题的解决方案可以使用多个互斥锁。我想我可以研究这种方法来区分升高和非升高并玩一些技巧。

编辑:我主要在寻找Windows Vista +的答案,但我认为如果我们将问题减少到优先获取互斥锁的处理类别,则问题适用于其他操作系统。了解其他操作系统的解决方案也会很有趣。

只需编写完全符合您期望的代码即可。例如,您可以有一组提升的进程在等待互斥锁,这些进程受互斥锁保护。然后,对非提升的进程进行编码,使其在该计数降至零之前不继续。无论如何,所有进程都在合作 - 作弊者可以拒绝阻止互斥锁。所以应该没有安全问题。