skylgl
驱动小牛
驱动小牛
  • 注册日期2002-05-13
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分71分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
阅读:1736回复:6

有兴趣的一起讨论一下吧(80分)

楼主#
更多 发布于:2003-05-14 10:31
在下有一个问题,捆饶了很多天,希望各位高手关注一下呀!
我的中间层驱动发生了一个问题,在静态安装后,也就是在启动时直接加载,程序会在ProtocolStatus时出现PAGE FAULT,我跟了一下程序,发现一个问题:
我的函数ProtocolStatus(arg1,arg2),我在函数里用DBG打印出了arg2,发现这个参数打印出来的值跟用SOFTICE看到的这个值是不同的。感觉比较奇怪,因此认为在这里是有问题的。
然后我在ProtocolPnpEvent函数中也存在这样的问题,我查了地址(用SOFTICE),发现地址的确有些乱,我认为是堆栈发生了错误。
当我在ProtocolPnpEvent中打印了参数后,发现在调用ProtocolStatus时就是正确的了,即没有上述的问题了。
我始终认为是我的DriverEntry的内存出了问题,但我检查可能出错的地方,没有发现问题。
我知道要大家直接帮我解决这个问题的可能性不大,但想知道大家有没有遇到这种问题,和解决问题的办法。
顺便说一句,在程序起来后再加载我的驱动,一切都是好的,没有上面的问题
robin_wxg
驱动小牛
驱动小牛
  • 注册日期2003-02-10
  • 最后登录2009-09-21
  • 粉丝0
  • 关注0
  • 积分60分
  • 威望6点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-05-14 11:03
这可能涉及系统内存换出的问题, 你用Softice观察到的和打印的不一样,没什么好奇怪,启动后在加载,可能已经Run了这个function,就不会换出了。
   因此,地址不同不一定是错,关键是内容。你应该查一下。
skylgl
驱动小牛
驱动小牛
  • 注册日期2002-05-13
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分71分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-05-14 12:13
说的有理?不过,并非是没有错,只是在系统启动以后没有调用ProtocolStatus函数,当然,我也不知道是不是调用这个就一定出错,但是,堆栈内的指针似乎是有问题的,当然,这是指静态加载的情况,不过,还是感谢关注
skylgl
驱动小牛
驱动小牛
  • 注册日期2002-05-13
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分71分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-05-14 15:50
问题仍然没有解决,我顶一下,希望大家关注
可以肯定堆栈的错误必然会导致系统崩溃,毕竟,堆栈才是真正的保存正确数据的地方
skylgl
驱动小牛
驱动小牛
  • 注册日期2002-05-13
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分71分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-05-15 10:46
我不相信大家没有遇到这个问题,
斑竹呢?我再顶一下,问题仍然没有解决
望大家关注啊。。。。。。。
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-05-15 10:49
1 可能是你的编译有问题,字节对齐方面的问题(可能)
2 程序中那个地方对内存操作越界了。

仅供参考
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
skylgl
驱动小牛
驱动小牛
  • 注册日期2002-05-13
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分71分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-05-15 15:55
感谢MIKE,我也发现了这个问题,内存越界基本可以排除,
认为在编译上有一些问题,我正在查。。。。。。
还是使用SOURCE文件好啊!我现在把编译参数内嵌到VC中,好麻烦啊!!不过,因为程序比较大,也没有办法,再次感谢MIKE
游客

返回顶部