你知道为什么吗:
HANDLE hEvent = OpenEvent(EVENT_MODIFY_STATE, FALSE, L"Global\\MyEventName");即使创建该事件的进程不再运行,是否仍成功打开该事件?
我能想到的唯一原因是创建事件的进程在终止时没有关闭它,但是,我假设如果创建命名事件的进程在没有关闭事件的情况下终止,那么事件是由操作系统关闭的,这是一个错误的假设吗?
如果命名事件创建者未关闭就终止了,那么命名事件的状态是什么?
我在Windows10 x64上测试,这两个进程(Creator / OpenEvent)都是作为系统Windows服务运行的,所以特权问题就不存在了。
发布于 2018-03-10 15:25:41
MSDN说
当事件对象的最后一个句柄关闭时,该对象将被销毁。
它不是事件对象在其创建者退出时被销毁。
因此,很可能有另一个进程打开了此事件对象的句柄。
https://stackoverflow.com/questions/49206110
复制相似问题