paladinii
驱动中牛
驱动中牛
  • 注册日期2003-10-28
  • 最后登录2012-03-09
  • 粉丝0
  • 关注0
  • 积分282分
  • 威望74点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
阅读:1990回复:12

讨论:大家有没有解决irp重入的好办法。

楼主#
更多 发布于:2005-01-19 12:54
讨论:大家有没有解决irp重入的好办法。例如:在ReadDispatch中使用ZwReadFile函数是否会产生 IRP_MJ_READ 重入,又该怎么解决,除了使用ReadCompletion或者自己构造IRP外还有什么其他方法?听说可以使用对比线程ID的方法具体怎么实现? :)
Ideas for life!
paladinii
驱动中牛
驱动中牛
  • 注册日期2003-10-28
  • 最后登录2012-03-09
  • 粉丝0
  • 关注0
  • 积分282分
  • 威望74点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-02-07 18:38
看了两年前Coolice的贴子很受启发。Coolice人在何方?还这个坛子不?
Ideas for life!
paladinii
驱动中牛
驱动中牛
  • 注册日期2003-10-28
  • 最后登录2012-03-09
  • 粉丝0
  • 关注0
  • 积分282分
  • 威望74点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-02-06 14:48
自己构造IRP使很好,但是如果我要同时完成文件打开、读取、写入这个时候怎样构造IRP是否要分别构造,还是只构造打开操作的?那读取、和写入ZwReadFile、ZwWriteFile怎么获取文件拘柄?谁有好的方法和Source code 请发出来,谢谢了!

[编辑 -  2/14/05 by  paladinii]
Ideas for life!
ciomhan
驱动牛犊
驱动牛犊
  • 注册日期2004-04-26
  • 最后登录2010-07-27
  • 粉丝0
  • 关注0
  • 积分244分
  • 威望75点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-02-06 13:36
我在以下情况的时候遇到过:以CACHE方式在IRP_MJ_READ请求执行
CcCopyRead的时候产生PAGE FAULT,然后系统会调用IoPageRead等待数据页被掉入,这时就会重新产生一个IRP_MJ_READ的请求以NOCACHE方式实际读取数据,这就是重入.解决方法:参照CDFS之:CdSetThreadContext函数,其中有个判断
中有这句话:FlagOn( (ULONG_PTR) CurrentThreadContext, 0x3 )
这个0x3表示:出现<1>.嵌套调用<2>.当前线程的TOPLEVEL被CACHE MANAGER占用<3>.当前线程的TOPLEVEL被modified page writer占用
我的理解如果有什么问题,请告诉我:ciomhan@163.com
paladinii
驱动中牛
驱动中牛
  • 注册日期2003-10-28
  • 最后登录2012-03-09
  • 粉丝0
  • 关注0
  • 积分282分
  • 威望74点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-01-21 13:17
和sport有什么关系??
Ideas for life!
lhzh114
驱动牛犊
驱动牛犊
  • 注册日期2004-02-20
  • 最后登录2008-12-27
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望37点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-01-20 14:48
 [url] [/url] http://sports.sina.com.cn/

那篇文章?
qiangguo64
驱动牛犊
驱动牛犊
  • 注册日期2005-01-12
  • 最后登录2009-08-28
  • 粉丝0
  • 关注0
  • 积分144分
  • 威望15点
  • 贡献值1点
  • 好评度14点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-01-20 11:29
两种方法:
第一是自己构造IRP,直接call下层文件系统
第二是记录当前threadID,放到一个链表中,在IRP_MJ_READ中比较当前threadID和链表中的threadID,如果当前threadID已经记录在链表中,就认为是重入,不做处理,直接放行

我现在基本在2K下用的构造IRP,9x下用链表记录
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-01-20 11:27
[quote]写错了,是shadow device object。说了很多年了~~~

这个只能避免在create中重入 [/quote]

read that article on osr.com carefully
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
tooflat
论坛版主
论坛版主
  • 注册日期2002-07-08
  • 最后登录2014-03-11
  • 粉丝2
  • 关注0
  • 积分1007分
  • 威望551点
  • 贡献值3点
  • 好评度476点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-01-19 21:36
写错了,是shadow device object。说了很多年了~~~

这个只能避免在create中重入
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-01-19 20:49
写错了,是shadow device object。说了很多年了~~~
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
10楼#
发布于:2005-01-19 19:52
自己分配IRP多好,特别READ这种无须特殊处理的.
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
paladinii
驱动中牛
驱动中牛
  • 注册日期2003-10-28
  • 最后登录2012-03-09
  • 粉丝0
  • 关注0
  • 积分282分
  • 威望74点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2005-01-19 19:01
楼主,能否在说详细点?谢谢!
Ideas for life!
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2005-01-19 18:47
control device object
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
游客

返回顶部