OpenEvent 失败的问题

在同一个用户下,两个进程间通过事件通信,但是一个用户 CreateEvent 后,另外一个程序去 OpenEvent 事件失败。

在之前我遇到过该问题,经过检查,原来我一个进程是服务启动的进程,权限较高,而另外一个进程是普通用户进程权限较低,导致权限较低的进程去打开权限较高的进程创建的事件的时候,会报找不到事件的错误。

我们只能通过提升普通用户的权限,或者创建事件的时候降低 通过安全属性降低事件的权限,使他们拥有相同的权限即可。

提升权限的方法我没有查,可以自己百度一下,这里我采用的降低 服务进程的权限,然后使用低权限去创建事件。


   SECURITY_ATTRIBUTES sea;
SECURITY_DESCRIPTOR seds;
sea.nLength = sizeof(SECURITY_ATTRIBUTES);
sea.bInheritHandle = FALSE;
sea.lpSecurityDescriptor = &seds;
InitializeSecurityDescriptor(&seds, SECURITY_DESCRIPTOR_REVISION);
SetSecurityDescriptorDacl(&seds, TRUE, 0, FALSE);
HANDLE handle = CreateEvent(&sea, FALSE, FALSE, TEXT("FWCOPY"));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值