阅读:1307回复:4
兰屏错误!
\"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 |
|
|
沙发#
发布于:2002-06-14 11:04
有无可能DMA返回的数据长度大于64K?
[编辑 - 6/14/02 by Jim_little] |
|
|
板凳#
发布于:2002-06-14 11:19
有无可能DMA返回的数据长度大于64K? 不可能,我直接设置dma传输字节数的寄存器为2000。而且dpc中根本没使用dma返回的数据,只是设置开始下次dma,完成当前irp,并且取出队列中下一个irp设为当前irp。 |
|
|
地板#
发布于:2002-06-14 11:41
把Softice运行起来,看看死到那一个语句。
|
|
|
地下室#
发布于:2002-06-14 11:51
目前,只能如此:
把Softice运行起来,看看死到那一个语句。 或是,给出部分你认为大致有问题的代码。。。。。。。。 :) |
|
|