阅读:2051回复:24
怎样解决这个错误?
我写了一个例子,可是不知道该如何调试,装上驱动后,设备显示“由于 Windows 无法加载这个设备所需的驱动程序,导致这个设备工作异常。 (代码 31)”,我不知道怎么用softice进行调试,加载进入softice后,可以找到文件,可是按F10出来的东西就是汇编码,不会出现我在程序中所写的调试信息,我该怎么做啊??
|
|
最新喜欢:![]()
|
沙发#
发布于:2003-01-08 16:22
还有,我在sofice中load是我编译出来的.sys文件还是已经装在系统中的文件啊,
1.当我加载系统中的文件时用file显示不出原码 2.当我加载自己编译好的哪个目录中的.sys文件时可显示原码,但是这时候如果设置断点后,利用我的应用程序调用该.sys文件它会不会起作用啊,另外我没有设置应用程序调用 该sys文件,而是直接装入系统,那怎么办? |
|
|
板凳#
发布于:2003-01-08 16:31
你的驱动根本没有被夹在进来,所以源文件和代码对不上。即使你强行加载,这部分代码softice也不会认。问题不在softice,你首先得想办法把驱动加载。式式在其他系统下重新编译一下。
|
|
地板#
发布于:2003-01-08 17:40
yyhabc,
可是我用softice加载系统中已有的sys文件,是其它的能够使用的,也不能显示原码啊,这个没有原文件是不能够显示原码的吧? 还有,为什么会出现“由于 Windows 无法加载这个设备所需的驱动程序,导致这个设备工作异常。 (代码 31)”这个啊,另外在开始装的时候,系统提示:无法确定驱动程序是否与硬件兼容\",虽然卡不是我做的,但我在inf里的ved都是和卡对应的啊,这是怎么回事? 怎么解决啊? |
|
|
地下室#
发布于:2003-01-08 20:26
晕死,看来你没什么调试的概念。没关系,好好学,很快的。你加载系统的sys,这些sys没有源文件,你没办法援文件调试的,但可以找符号信息,调试会容易些。去冬不能加载的原因很多,比如pe温家席位的差别,系统找不到被调用的函数等等。
|
|
5楼#
发布于:2003-01-08 20:35
一般说,这个错误是:
1)你某个历程如DRIVERENTRY,ADDDEVICE return 了一个错误码, 2)你可能向系统报告一个数据,结果系统认为是错误的。比如你的是MINIDRIVER |
|
6楼#
发布于:2003-01-09 23:05
yyhabc,tjm谢谢你们了
我今天晚上回来对于调试感觉有些概念了,但是我还是有下面几个问题没有解决 1。我的驱动装上去还是有那个错误出现,在开始装的时候没有错误 提示,装完后硬件上有\"“由于 Windows 无法加载这个设备所需的驱动程序,导致这个设备工作异常。 (代码 31)”\",我查了一下书,就象tjm所说的,是由于那两种原因产生的。。。于是我进行下面的一步 2。我在system32/drivers下找到了我的sys文件,注册表中 也有注册信息,于是我怀疑是driverentry加载的问题,于是下面一步 3。利用softice的symbol loader加载了system32/drivers下的sys文件,当它提出查找我的create文件时我选择了相应的目录,然后在DriverEntry那里利用F9设了端点,然后把硬件驱动给更新一次,按理说应该会断在Driverentry处的,可是没有什么反应啊,那是不是说明我的驱动更本没有装上 那么这个问题应该如何解决呢?怎么样才能让它工作,我的Driver里面什么都没有的。。。。。 |
|
|
7楼#
发布于:2003-01-09 23:10
另外说明一下 ,我的sofice是手动启动的,所以我加载或更新驱动后就没有重启,因为要是我要是该为softice随机启动,那样我的键盘就用不了了,虽然下载了softice说明上2000下去要的哪个键盘驱动,还是没有用
|
|
|
8楼#
发布于:2003-01-10 09:32
从表现看,你的驱动未被加载,你可以式着map一下,看看有没有你的驱动。
|
|
9楼#
发布于:2003-01-10 09:57
yyhabc真心感谢你,你真的很热心
我不知道怎么map的,不过我用2000 DDK下的一个叫Driver Verify Manager的工具看了一下,确实没有发现我的DRIVER,看样子的我的驱动真的没有加载进去 这是由于什么原因啊? 1。由于inf的文件对应错误吗? 2。由于DrierEntry或者是AddDevice有错误吗?不过这个好象现在不太可能 要是驱动没有加载进去,我该怎么解决啊? |
|
|
10楼#
发布于:2003-01-10 12:03
没什么老哥,都是江湖中人吗!互相帮助。我遇到这种情况是因为函数版本不兼容,导致系统找不到被调函数。至于你的是什么问题我就不知道了,见你一换一下操作系统,重新编译,可能有戏。另外,你应该看softice说明。那里有对所有命令的解释。
|
|
11楼#
发布于:2003-01-10 15:46
呵呵,yyhabc,谢谢
我把程序卸载后,在2000下重装,现在根本就进不了了,装入驱动程序的时候马上出现蓝屏,显示KMODE_EXECEPTION_NOT_HANDLEED-----然后还有些乱七八招的东东,出现了个ntoskrnl.exe,然后重启,驱动程序呢就根本没有加入进去,现在我看只有是程序的问题了,但是不知道是那里错了,由于驱动没有载入系统,我看也没有必要使用softice来调试了。。。。。。。。。。。现在该怎么办啊??看样子只好检查程序了。 还有我现在明白为什么出现前述的问题了,可能第一次安装的时候INF中的设备号和厂商号不对产生的,导致虽然驱动拷入了系统,但其实没有加载 :( |
|
|
12楼#
发布于:2003-01-10 15:56
老哥,那可不是乱七八糟的东东,有了它你才知道什么地方错了。你比较倒霉,这是一种不好调的错误。osftice理论上是可以调的,但实际上,由于它的显驱不行,就用不了,看来你的另想办法了。比如双机调试。
|
|
13楼#
发布于:2003-01-10 17:39
不会吧,也说的太可怕了,我把程序逐渐最简化,看它会怎么样。。。这样等到可以装上的时候就知道那里有问题了。。。
|
|
|
14楼#
发布于:2003-01-12 17:05
---------------------------------
不会吧,也说的太可怕了,我把程序逐渐最简化,看它会怎么样。。。这样等到可以装上的时候就知道那里有问题了。。。 --------------------------------- 这个主意不错呀,可以先把DRIVER ENTRY和ADDDEVICE简化,在最后强行返回一个STATUS SUCCESS,看看怎么样。 另外,用个其它的调试工具,看看可疑地方的ntStatus返回值到底试什么。 |
|
15楼#
发布于:2003-01-12 18:28
谢谢诸位的关心,哪个我在昨天解决了,可是我现在又出了一个新的错误,设备不能启动!我现在正想办法了
对了,我现在每次用softice截住断点的时候,按下F9一步一步走,就看不到什么当初写在程序中的DBG信息,还有按下F10键马上就进入蓝平,哎!看样子我还是不知道怎么调试! |
|
|
16楼#
发布于:2003-01-13 14:40
现在设备正常工作了,但是我还是不知道怎么调试?
|
|
|
17楼#
发布于:2003-01-13 14:45
老哥,别着急,慢慢来。调试程序很简单,所有调试工具,都会让你把注意力集中在程序上,而不是使用工具上。不知道,你看过softice的命令介绍没有,他自带的,你可以看看。会有一些思路的。如果还不行,请教一下周围的人。
|
|
18楼#
发布于:2003-01-14 18:41
工欲善其事,必先利其器
|
|
|
19楼#
发布于:2003-01-14 19:09
我周围没有人搞过这个。55...............
|
|
|
上一页
下一页