limee
驱动牛犊
驱动牛犊
  • 注册日期2004-03-02
  • 最后登录2006-07-25
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1184回复:3

驱动程序测试时候的问题

楼主#
更多 发布于:2005-04-06 23:26
我的应用程序是这样,故意让系统产生10个Irp
for(int i=1;i<=10;i++)
    DeviceIoControl(DEVC,.....);
驱动程序,我故意在处理DEVC控制码的时候,用了个大循环
来延时。
switch(ioctlcodea)
  case DEVC:
       for (long i=0;i<10000000;i++)
       DbgPrint(\"Debug\"\\n);
但为什么驱动还可以很正常的处理每个irp,我的驱动程序没有
什么StartIo的排队例程啊?这里我很疑惑,难道说是在io管理
器来对不能及时处理的irp进行排队吗?                                        
KMK
KMK
驱动大牛
驱动大牛
  • 注册日期2001-09-12
  • 最后登录2017-10-06
  • 粉丝2
  • 关注0
  • 积分42分
  • 威望404点
  • 贡献值2点
  • 好评度58点
  • 原创分1分
  • 专家分1分
  • 社区居民
沙发#
发布于:2005-04-06 23:58
 
for (long i=0;i<10000000;i++)

这时间不长 !
limee
驱动牛犊
驱动牛犊
  • 注册日期2004-03-02
  • 最后登录2006-07-25
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-04-07 02:37
[quote]for (long i=0;i<10000000;i++)

这时间不长 ! [/quote]

for (i=0;i<10000000;i++)
{
  for (j=0;j<10000000;j++);
}  

改成这样还是老样子,看来不是时间长短的问题了!
idaxsy
驱动大牛
驱动大牛
  • 注册日期2004-12-09
  • 最后登录2006-03-17
  • 粉丝0
  • 关注0
  • 积分386分
  • 威望54点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-04-07 09:15
当然可以正常处理。
如果你使用了StartIo,反而会可能延迟irp的处理。
[b]万水千山总是情,回个帖子行不行?[/b]
游客

返回顶部