驱动程序无法加载分析

最近项目中接连碰到几个和驱动加载相关的问题,所以我决定对这些问题做一个调研。
 
项目使用的驱动是一个Legency的NT式的协议驱动,驱动上边是标准的Legency的NT驱动接口,下边是NDIS接口,运行在Windows 2003 Server SP2上。出现的问题可以描述如下:
1. 某些服务器上安装好项目使用的驱动之后不能启动驱动。
2. 某些服务器上当驱动卸载之后必须重启才能启动重新安装的驱动。
当使用net start <driver name>加载驱动的时候,都出现下列错误:
System error 1058 has occurred.
The service cannot be started, either because it is disabled or because it has no enabled devices associated with it.
 
刚看到问题的时候,我直觉是DriverEntry中的某些设置和系统中某些选项冲突,所以我首先编译了一个chk版的驱动,用dbgview和regmon捕获内核调试输出和注册表行为,但是连一句调试信息都没有。这就令人费解了,因为这说明加载过程连DriverEntry都没进。换句话说,要解决这个问题就要对系统代码进行跟踪,但是微软的系统不开源,只能另找出路了。于是我想到了ReactOS项目,一个模仿WinXP/Win2003的开源项目,其目标是和WinXP/Win2003二进制兼容。于是我到了ReactOS的官网上下载了最新的代码,通过查看其对net start命令的实现࿰
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值