命名事件即使其创建者不存在也存在

时间:2018-03-10 06:33:07

标签: c++ events named

任何想法原因:

HANDLE hEvent = OpenEvent(EVENT_MODIFY_STATE, FALSE, L"Global\\MyEventName");

即使创建事件的进程不再运行,也会成功打开事件?

我能想到的唯一原因是创建事件的过程在终止时没有关闭它,但是我假设如果创建命名事件的进程在没有关闭的情况下终止事件,那么事件由OS关闭,这是一个错误的假设吗?

如果命名事件的创建者在没有关闭的情况下终止,那么它的状态是什么?

我在Windows 10 x64上进行测试,两个进程(Creator / OpenEvent)都作为系统窗口服务运行,因此权限问题已不在游戏中。

1 个答案:

答案 0 :(得分:0)

MSDN说

  

事件对象在最后一个句柄关闭时被销毁。

它不是事件对象在其创建者退出时被销毁。

因此,很可能是有另一个进程可以打开这个事件对象。