首页
社区
课程
招聘
[求助]驱动DISPATCH_LEVEL下如何输出数据
发表于: 2013-10-29 14:33 5605

[求助]驱动DISPATCH_LEVEL下如何输出数据

2013-10-29 14:33
5605
最近在写一个数据抓取的驱动,直接用的Windows filtering Platform。
已经成功的抓取了一些数据了,现在想把这些数据输出来却成了问题。自己捣鼓了好久,但是还是没有比较好的解决方案。

现在试过的问题方案:
1方案一:直接写文件
       内核发现数据时的回调函数是在DISPATCH_LEVEL上,这个等级不能直接写文件
2方案而:利用ioctl读取消息
       我利用用户态创建KEVENT,传递到内核,然后有数据的时候再去读。但是因为同步,同时用了自旋锁和KeWaitForSingleObject,出现蓝屏了。

希望高手能给一种比较好的方案。

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

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 155
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
用workitem或者自己写个守护线程
2013-10-29 15:27
0
雪    币: 371
活跃值: (72)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
弄个队列,然后把消息加入队列,再弄个线程读取并打印出...
2013-10-29 15:49
0
雪    币: 49
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这个是首选 队列模式在驱动经常使用 很多代码都有
2013-10-29 17:53
0
雪    币: 33
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
跟我想的差不多,刚写了一个List,准备试一下。
还想问一下,关于DISPATCH下如何防止缺页中断的问题。我代码里面用了自旋锁,代码可以用alloc_text来控制,全局变量呢?
2013-10-30 09:24
0
雪    币: 49
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
啥意思?不太懂
DISPATCH下不能缺页中断  不准出现缺页的代码
2013-10-30 10:40
0
雪    币: 33
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
就是啊,当前我的代码好多在dispatch level下,我怕出现缺页中断导致蓝屏。
所以我想请教一下怎么避免这种情况出现。
对于代码段,可以通过alloc_text声明是 NonPaged
但是一些全局变量呢?怎么声明其是NonPaged
2013-10-30 12:35
0
游客
登录 | 注册 方可回帖
返回
//