首页
社区
课程
招聘
[旧帖] 为什么IoCreateNotificationEvent的EventHandle无效... 0.00雪花
发表于: 2010-2-27 22:59 6988

[旧帖] 为什么IoCreateNotificationEvent的EventHandle无效... 0.00雪花

2010-2-27 22:59
6988
第一,IoCreateNotificationEvent是在应用的进程上下文使用的,也就是在自定义的IOCTL里.
第二,KeWaitForSingleObject使用它返回的PKEVENT也不会蓝...

但是IoCreateNotificationEvent的第二输出参数EventHandle总是为-2147482440,用户层去SetEvent都没反应...

具体代码
VOID MyThread(PVOID PContext){
    DbgPrint("%s","调调调调调调调调调调调调调调调调调调调调调调XXX");
    KeWaitForSingleObject(hyevent,Executive,UserMode,FALSE,NULL);
    DbgPrint("%s","调调调调调调调调调调调调调调调调调调调调调调");
    PsTerminateSystemThread(STATUS_SUCCESS);    
}


WCHAR wEventName[]=L"\\BaseNamedObjects\\SharedEvent"; 
                UNICODE_STRING uEventName;
                HANDLE hEvent;
                PKEVENT xhevent,hyevent;
                RtlInitUnicodeString(&uEventName,wEventName);
                hyevent=IoCreateNotificationEvent(&uEventName,&hEvent);  
                KeResetEvent(hyevent); 


各位大哥哥,帮忙看看...

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 386
活跃值: (46)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
内核层创建的通知事件应用层是没有设置权限的吧,你要换其他的方法,比如发一个ioctl让内核层代码去设置
2010-2-28 08:18
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
问题解决了,改为在应用层用OpenEvent(EVENT_ALL_ACCESS,False,XXX);就达到了效果了

小结下:
          用户层:CreateEvent WaitForSingleObject,驱动层:ObReferenceObjectByHandle KeSet...
          驱动层:IoCreateNotificationEvent KeWaitForSingleObject,应用层:OpenEvent(EVENT_ALL_ACCESS,False,XXX) SetEve...

这样就达到了双向的作用了
2010-2-28 12:54
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
而且是经过测试的哦,xp下,OpenEvent(EVENT_ALL_ACCESS,False,XXX); 再SetEvent,很OK哦...
2010-2-28 12:55
0
雪    币: 386
活跃值: (46)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
真的可以么?
2010-2-28 13:37
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
xp,2k3可以,win7不可以
2010-2-28 19:32
0
雪    币: 265
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yvi
7
是真的吗?
2010-7-21 22:08
0
游客
登录 | 注册 方可回帖
返回
//