阅读:1537回复:3
*** STOP 0x0000000A 错误
在Win2000+sp4+DriverStudio 3.1下开发以PLX 9052为借口芯片的驱动程序,在中断产生时, 总出现如下蓝屏错误:
*** STOP 0x0000000A (0xHHHHLLLL, 0xHHHHLLLL, 0x00000001, 0xKKKKKKKK ) IRQL_NOT_LESS_OR_EQUAL *** Address 0xKKKKKKKK base at 80400000, DateStamp 40D1D19A - ntoskrnl.exe 其中0xHHHHLLLL不定( 程序中涉及对KInterruptSafeFIFO对象的操作) 0xKKKKKKKK为NTOSKRNL中的一服务, 不知为何,如何解决, 请高手不囹赐教。 |
|
沙发#
发布于:2004-11-01 01:07
这个错误可能是内存访问错误, 比如你在DISPATCH_LEVEL访问了PAGED MEMORY. 或者你在高IRQL级使用了只能在低IRQL上运行的API。打开DRIVER VERIFIER工具监控一下,就可以知道在你的驱动中哪里出错了。
|
|
板凳#
发布于:2004-11-01 09:28
我所作的是在ISR中缉拿购到的数据放在KInterruptSafeFIFO对象中,在DPC中置通知事件以告知用户应用程序数据到来, 在用户应用程序的DEVICE_IO IRP中读取该FIFO。 程序曾经运行的很好, 发送防以每秒约3000次的速度发送, 运行半分钟没任何问题, 此期间在后台进行其他操作也很正常。 但基本上没做什么, 后来就出现上述问题。 我在程序中没有对PAGED MEM操作, 至少我没看出来那里有这种操作, IRQL的问题也不存在。 上述FIFO的缓冲区是在NON_PAGED_POOL种分配的,READ和WRITE操作也是同中断同步了的。 不知为什么, 还请继续赐教。 Driver Verifier我也曾试过, 但似乎看不出什么, 该如何看, 请赐教。
[编辑 - 11/1/04 by FutureForever] |
|
地板#
发布于:2004-11-02 04:42
这种问题的可能原因分析起来比较麻烦,原因也很多。还有一种情况就是你虽然分配的缓冲区是在NON_PAGED_POOL,但你分配的是否足够大,有没有越界的可能?
VERIFIER很简单,在命令行方式下运行VERIFIER就可以了,界面简单明了。 Good luck. |
|