首页
社区
课程
招聘
[求助]驱动程序和一般进程的通信问题
发表于: 2008-11-13 12:54 5111

[求助]驱动程序和一般进程的通信问题

2008-11-13 12:54
5111
1.驱动程序如何和一般进程进行通信?有什么方式?(我知道直接去写个1到一个用户空间的虚拟地址,然后应用程序反复察看这个地址上的数据,这也是一种通信方式,不过我这里想问的是比较正规的通信方式,而且在内核的话虚拟内存会转变,不定是写到哪个空间去了)
2.事件通信怎么通?该用哪些函数?在驱动里你可以KeInitializeEvent一个事件,然后等待,接着等事件在其他内核线程被设置后,继续运行驱动代码,但是在一般进程的话怎么设置这个事件?
KeSetEvent是在ddk声明的,而不是<windows.h>和C++源文件里声明的,那该怎么设置这个事件呢?还有初始化和等待事件?
3.在中断运行代码会减少系统效率,所以一般的中断处理例程是不是直接创造一个IRP,然后发送?比如键盘的中断处理例程,是创造什么功能码的IRP?

就这些问题了,大家帮忙解决下,先谢谢了

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 231
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qdk
2
用户层可以用SetEvent啊

中断不会创造IRP的,会用KeInsertQueueDpc 之类的函数,将需要执行的任务插到任务队列,
然后由相应的内核工作线程去完成,一般需要延迟执行的操作都是这样执行。

驱动和一般程序通信可以通过DeviceIoControl吧,不是吗?
2008-11-13 13:43
0
雪    币: 261
活跃值: (32)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
3
貌似我有好几个问题都是你解决的,太谢谢了!!
2008-11-13 17:47
0
雪    币: 231
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qdk
4
其实你可以用windbg自己获取这些信息
可能我理解的也有错误

windows internal 4th也很不错
2008-11-13 18:21
0
游客
登录 | 注册 方可回帖
返回
//