首页
社区
课程
招聘
[求助]哎,我就停留在WORKITEM这里了,大家来帮帮我这个初学才啊!
发表于: 2008-8-25 16:57 5064

[求助]哎,我就停留在WORKITEM这里了,大家来帮帮我这个初学才啊!

2008-8-25 16:57
5064
在网上搜了几天,在书上也找了几天就是没结果啊,帮帮我吧。
一、关于WORKITEM有的说是:IO_WORKITEM为了把一些工作放到PASSIVE_LEVEL去做,因为如果你在DISPATCH_LEVEL等高优先级下很多函数是没法调用的。这个和DPC非常类似,DPC是为了提高优先级,而这个是为了降低优先级。IoQueueWorkItem的工作其实就是把这个WorkItem加入队列,然后由一个专门的系统线程来检查运行的。-------------可是我现在看regmon的代码在IRP_MJ_DEVICE_CONTROL的函数:RegmonDeviceControl调用RegmonNewStore再调用RegmonWriteBootLog时,就用加放了WORKITEM,把RegmonWriteBootLog作为WORKITEM的例程,我不知道是为什么,应该这些函数都是在PASSIVE_LEVEL上运行的啊?而在IRP_MJ_SHUTDOWN:
里是直接调用RegmonWriteBootLog的???

二、查了DDK的帮助讲到:A driver that requires delayed processing can use a work item, which contains a pointer to a driver callback routine that performs the actual processing. 说是为了延迟进程才用WORKITEM,我想大牛们都应该看过regmon的代码,那里为什么要延迟啊?

三、通过我这几天的学习,我个人认为是如果在高于或等于DISPATCH_LEVEL时,用到的函数要操作分页内存时才用WORKITEM降低级别以免兰屏,不知道对不对??

四、我对System Worker Threads的概念还不是很理解,请大家赐教!!

附上regmomr的代码(不能实现写缓存到日志文件也就是store的内容写不到磁盘里,搞不懂啊)

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

上传的附件:
收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 296
活跃值: (20)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
WORKITEM:

一是把不能在高级别中操作放到低级别去做

二是把耗时的操作延迟,如同linux下的tasklet。
2008-8-26 22:51
0
游客
登录 | 注册 方可回帖
返回
//