SharpShooter
驱动小牛
驱动小牛
  • 注册日期2002-04-07
  • 最后登录2013-07-05
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2305回复:14

200分讨论,Ndis Hook问题,如何支持拨号和ADSL拨号连接.

楼主#
更多 发布于:2003-10-08 11:13
2000下用NdisHook连接,可以拦截并处理电话拨号和ADSL拨号,但会出现死机情况,原因未知,哪位大哥也遇到过此类问题?可否指点/交流一下?

最新喜欢:

raphyerraphye...
写驱动不如买足彩!!
SharpShooter
驱动小牛
驱动小牛
  • 注册日期2002-04-07
  • 最后登录2013-07-05
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-10-08 15:12
关注此帖者有分!
写驱动不如买足彩!!
taijun
驱动牛犊
驱动牛犊
  • 注册日期2003-10-08
  • 最后登录2005-01-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-10-08 15:45
高分之下必有智者
关注ing
antspower
驱动中牛
驱动中牛
  • 注册日期2002-10-17
  • 最后登录2010-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-10-08 16:36
一起来折腾吧,问不到什么东西的。
放弃瘟草,现吃李草
SharpShooter
驱动小牛
驱动小牛
  • 注册日期2002-04-07
  • 最后登录2013-07-05
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-10-09 19:05
200分都没人来拿?
写驱动不如买足彩!!
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-10-10 11:15
别人怎么会知道你的代码的问题??这个不是高分就可以的事情啊。
你只说有问题,什么样的问题都不说,什么地方出的问题也不说。

我当然可以肯定的说,肯定是你的代码写的不对啦,呵呵。
自己慢慢折腾就慢慢清楚了。
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
SharpShooter
驱动小牛
驱动小牛
  • 注册日期2002-04-07
  • 最后登录2013-07-05
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-10-11 11:55
大哥,我只是想看看有没有哪位老兄做过和我类似的事情,可以交流一下,你要有兴趣或者我们可以讨论讨论,没兴趣就一边呆着,废话就免说了吧.
写驱动不如买足彩!!
SharpShooter
驱动小牛
驱动小牛
  • 注册日期2002-04-07
  • 最后登录2013-07-05
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-10-11 19:15
问题解决,放分!
写驱动不如买足彩!!
antspower
驱动中牛
驱动中牛
  • 注册日期2002-10-17
  • 最后登录2010-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-10-13 13:18
能不能介绍下?

放弃瘟草,现吃李草
SharpShooter
驱动小牛
驱动小牛
  • 注册日期2002-04-07
  • 最后登录2013-07-05
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-10-14 09:59
能不能介绍下?

 

我用NdisHook处理,之前的情况走网卡的情况一直是没有问题的,但NdisWan的情况通信一会儿总会Down机,出错的情况也不稳定,后来把代码调整了一下后发现经常会看到Buffer不对,于是我调整了内存分配方式,问题竟然就解决了.

奇怪的是之前Buffer经常分配不成功,但分配的函数竟然总是返回成功信息,以至于不好定位问题.

教训是:需要经常分配较大内存的情况,最好使用预分配的Buffer链.感觉比旁视列表的机制都要来得稳定,可能是我的旁视列表写的不好吧.
写驱动不如买足彩!!
antspower
驱动中牛
驱动中牛
  • 注册日期2002-10-17
  • 最后登录2010-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-10-14 13:52
[quote]能不能介绍下?

 

我用NdisHook处理,之前的情况走网卡的情况一直是没有问题的,但NdisWan的情况通信一会儿总会Down机,出错的情况也不稳定,后来把代码调整了一下后发现经常会看到Buffer不对,于是我调整了内存分配方式,问题竟然就解决了.

奇怪的是之前Buffer经常分配不成功,但分配的函数竟然总是返回成功信息,以至于不好定位问题.

教训是:需要经常分配较大内存的情况,最好使用预分配的Buffer链.感觉比旁视列表的机制都要来得稳定,可能是我的旁视列表写的不好吧. [/quote]
谢谢了。
放弃瘟草,现吃李草
stone_huang
驱动牛犊
驱动牛犊
  • 注册日期2003-07-03
  • 最后登录2003-12-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-10-14 19:26
能介绍一下ndishook怎么截获ndiswan吗?
哪怕一个思路也行?
我会给分的。
SharpShooter
驱动小牛
驱动小牛
  • 注册日期2002-04-07
  • 最后登录2013-07-05
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-10-15 10:01
能介绍一下ndishook怎么截获ndiswan吗?
哪怕一个思路也行?
我会给分的。


从NdisOpenAdapter的入口参数PNDIS_MEDIUM MediumArray里,就能知道当前的Adapter是NdisMedium802_3还是NdisMediumWan.

这里我有个问题,就是我无法修改NdisWan的MTU,当我代码还有之前所说的问题的时候,我对NdisWan做了分片出现过Down机的情况,好在对于上层应用比如Ftp,Http,即使走ndiswan,Tcpip也会按照我设定的MTU给包,目前我只知道对于ICMP,TCP是不会按照我设定的MTU给包,这样的话对一般的应用是没有问题,影响只是无法PING大包,不知道我的理解对不对,是不是还会有别的问题暂时还没有发现.

我想这个问题是不是gjpland版主可以给些指点?
写驱动不如买足彩!!
stone_huang
驱动牛犊
驱动牛犊
  • 注册日期2003-07-03
  • 最后登录2003-12-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-10-15 14:44
引用:
--------------------------------------------------------------------------------
从NdisOpenAdapter的入口参数PNDIS_MEDIUM MediumArray里,就能知道当前的Adapter是NdisMedium802_3还是NdisMediumWan.
--------------------------------------------------------------------------------


你到我发的帖子里re一下,我给你分。

我是个新手,我还要再问一下,NdisOpenAdapter我是在
IRP_MJ_CREATE的例程里调用了一下,MediumArray是我传进去,
难道是要我hook NdisOpenAdapter吗?可是openblock里没有啊?
NDIS_PROTOCOL_CHARACTERISTICS里也没有啊?
能否指点一下?

感激不尽!
SharpShooter
驱动小牛
驱动小牛
  • 注册日期2002-04-07
  • 最后登录2013-07-05
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-10-15 15:23
引用:
--------------------------------------------------------------------------------
从NdisOpenAdapter的入口参数PNDIS_MEDIUM MediumArray里,就能知道当前的Adapter是NdisMedium802_3还是NdisMediumWan.
--------------------------------------------------------------------------------


你到我发的帖子里re一下,我给你分。

我是个新手,我还要再问一下,NdisOpenAdapter我是在
IRP_MJ_CREATE的例程里调用了一下,MediumArray是我传进去,
难道是要我hook NdisOpenAdapter吗?可是openblock里没有啊?
NDIS_PROTOCOL_CHARACTERISTICS里也没有啊?
能否指点一下?

感激不尽!

不知道你是怎么做的,不知道是不是有什么更好的处理.

我是这样做的,Hook Ndis.sys的四个函数:
NdisRegisterProtocol
NdisDeregisterProtocol
NdisOpenAdapter
NdisCloseAdapter
在NdisOpenAdapter的时候创建Adapter列表,这时候哪个Adapter是802.3哪个是NdisWan的都已经知道了,然后在OpenAdapterCompleteHandler里得到NDIS_OPEN_BLOCK,处理各个网卡的Send/SendPacket接口,这里OpenAdapterCompleteHandler在NdisRegisterProtocol的时候处理NDIS_PROTOCOL_CHARACTERISTICS可以得到.

这个文档可以看看,不知对你是否有用.
附件名称/大小 下载次数 最后更新
2003-10-15_NTKERNEL_COM WRITING FIREWALL FOR WINDOWS 9x-ME-NT-2000-XP.htm (61KB)  25
写驱动不如买足彩!!
游客

返回顶部