阅读:829回复:1
关于NT内核驱动程序的一个问题
小弟最近把98下的驱动程序在WINDOWSXP上安装,按说应该向下兼容,也就是说应该不作任何修改就可以使用,但没想到一装XP就马上重启,极为恐怖,后来经过调试,把问题解决了,所以我想把这一过程贴出来,不知对大家有没有帮助。
1。这个错误解决了其实很简单,就是访问了空指针了,是一个读的操作,但这个代码不是我写的,而是微软的一个例子,只要在访问之前加一个判断就可以了。在98下对内存的访问限制比较少,对空指针读不认为是错误,但在NT内核下这是不允许的,马上就死机,所以如果有哪位也遇到这种马上死机的情况,不妨查一下代码,看是不是会有这种情况发生。 2。由于错误非常恐怖,没有一点提示,所以就需要首先定位错误在哪里,这多亏了SOFTICE了,把可能有问题的驱动程序加载进SOFTICE,然后确认SIFTICE能截获所有错误,拼着死机启动驱动程序,SOFTICE就能在出错的地方停下来,而且是可以看到源代码的,所以错误也很快就能定位出来。 希望多和大家交流。 |
|
沙发#
发布于:2004-01-29 18:10
xp下的重启就是2000下的蓝平,可以看一下究竟是什么样的错误,不过还是很笼统的了。
在xp下,偶编的一个驱动搞死了系统,在关机的时候重启,实际上就是蓝平,错误是在较高的中断优先级访问分页内存,代码是0xD1,但不是总出现,有的时候会出现,有的时候不出现!!!我用Driverworks写的驱动。会是driverworks的问题吗????各位高手有这样的经历吗??帮帮偶吧。 |
|