Over
驱动牛犊
驱动牛犊
  • 注册日期2001-09-26
  • 最后登录2002-08-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1307回复:4

兰屏错误!

楼主#
更多 发布于:2002-06-14 08:50
\"a device driver has corrupted the executive memory pool.\"

我先用AllocateCommonBuffer()分配了一块64K的连续缓存,然后维护应用程序的读请求irp包队列。使用这块64K的缓存进行DMA传输,在中断处理dpc中直接完成当前irp包(没把数据copy回应用缓冲区),并启动下一个dma传输。

程序运行很快(0到5秒吧,但是如上所说的dma已经正常运行很多次了,如果及时停止,一切正常)就兰屏了,提示信息如上。

我想问的是:
1、有可能什么地方出错了;
2、这种运行很多次才出现的错误应该怎么调试?

regainworld@263.sina.com
当我们仰望星空,其实是在回顾历史
James.Ji
驱动老牛
驱动老牛
  • 注册日期2001-09-17
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分-9分
  • 威望-8点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-06-14 11:04
有无可能DMA返回的数据长度大于64K?

[编辑 -  6/14/02 by  Jim_little]
车到山前必有路。 虽然有些土,却是我最有感触的一句话。
Over
驱动牛犊
驱动牛犊
  • 注册日期2001-09-26
  • 最后登录2002-08-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-06-14 11:19
有无可能DMA返回的数据长度大于64K?


不可能,我直接设置dma传输字节数的寄存器为2000。而且dpc中根本没使用dma返回的数据,只是设置开始下次dma,完成当前irp,并且取出队列中下一个irp设为当前irp。
当我们仰望星空,其实是在回顾历史
James.Ji
驱动老牛
驱动老牛
  • 注册日期2001-09-17
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分-9分
  • 威望-8点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-06-14 11:41
把Softice运行起来,看看死到那一个语句。
车到山前必有路。 虽然有些土,却是我最有感触的一句话。
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-06-14 11:51
目前,只能如此:
把Softice运行起来,看看死到那一个语句。
 


或是,给出部分你认为大致有问题的代码。。。。。。。。

 :)
[color=red]大头鬼! :P[/color]
游客

返回顶部