liuguo0225
驱动牛犊
驱动牛犊
  • 注册日期2010-01-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望151点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2972回复:5

如何令中间层驱动安装时不断网,重启后生效?

楼主#
更多 发布于:2010-06-02 12:55
如题,我开发了一个中间层驱动,因为项目是应用在服务器上面,所以要求驱动安装的时候不能断网。我做了一些研究,断网主要是在做PtBindApdater绑定的过程断开原系统协议与miniport直接的连接。个人臆想,如果要阻止断网的话,应该在第一安装的时候只安装miniport不执行这个绑定过程,判断在以后的重启时则执行绑定,这样便可以达到安装的时候不断网。我使用ddk里提到的NDISCancelInitMiniport来取消MPInit的过程,不过这一阻止绑定的过程总是会蓝屏,原因找了很久不大明白。 所以想请教论坛里面的弟兄,有没有人做过这方面的内容?或者有什么好的想法,请指教一下,感谢。
cyliu
论坛版主
论坛版主
  • 注册日期2003-06-13
  • 最后登录2014-04-11
  • 粉丝5
  • 关注0
  • 积分1238分
  • 威望2531点
  • 贡献值0点
  • 好评度577点
  • 原创分14分
  • 专家分10分
沙发#
发布于:2010-06-02 13:59
1 使用hook技术不需要断网。

2 何处NDISCancelInitMiniport,描述清楚。错误码是什么?windbg打印的错误信息堆栈是什么?

3 再说,如果安装完需要立即重新启动,那么断网又有什么关系呢?
走走看看开源好 Solaris vs Linux
liuguo0225
驱动牛犊
驱动牛犊
  • 注册日期2010-01-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望151点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2010-06-02 14:43
回 1楼(cyliu) 的帖子
谢谢斑竹的回复。
1.NDIS HOOK确实不用重启,不过由于驱动需要支持运行在Server 2008系统,NDIS HOOK技术不知道是否能支持?
2.这一块我只是进行了尝试性的动作修改,因为对MPInit和PtBindApdater这一块的流程了解还很模糊,所以也没有什么具体的调试信息。在这儿想请教一下斑竹老大,如果想阻止驱动断开原因上下层关系,该怎么样修改才好?
3.在服务器安装中间层的时候不能断网但也不会和不能立刻重启,不然不断网就没有意义了。重启是在这之后服务器需要维护什么的被人工或其他软件重启。
treeyan
驱动牛犊
驱动牛犊
  • 注册日期2008-04-14
  • 最后登录2013-09-11
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望487点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分1分
地板#
发布于:2010-06-02 15:18
64位hook能给您带来不稳定的根源。

不知道您怎么安装驱动,不好发表意见。假定您都不好搞,直接在DriverEntry 检测csrss.exe进程是否启动不就结了。

如果启动直接返回 STATUS_SUCESS
zhangfresh
驱动牛犊
驱动牛犊
  • 注册日期2008-07-21
  • 最后登录2023-01-09
  • 粉丝1
  • 关注2
  • 积分94分
  • 威望871点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2010-11-30 10:04
做个开机自启动程序,功能是安装NDIS驱动。安装好后卸载自己。
iihacker
论坛版主
论坛版主
  • 注册日期2010-01-07
  • 最后登录2017-08-16
  • 粉丝5
  • 关注8
  • 积分377分
  • 威望1941点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2010-12-30 21:08
回 楼主(liuguo0225) 的帖子
楼主是64位的系统?  如果是32位的 NDISHOOK是可以使用的。 如果需要请加入QQ群 74755180

NDIS 1群74755180 NDIS 2群182802097 交换机软硬件技术群 187471475 FPGA PCI PCIE 群187471817
游客

返回顶部