阅读:2305回复:14
200分讨论,Ndis Hook问题,如何支持拨号和ADSL拨号连接.
2000下用NdisHook连接,可以拦截并处理电话拨号和ADSL拨号,但会出现死机情况,原因未知,哪位大哥也遇到过此类问题?可否指点/交流一下?
|
|
最新喜欢:raphye...
|
沙发#
发布于:2003-10-08 15:12
关注此帖者有分!
|
|
|
板凳#
发布于:2003-10-08 15:45
高分之下必有智者
关注ing |
|
地板#
发布于:2003-10-08 16:36
一起来折腾吧,问不到什么东西的。
|
|
|
地下室#
发布于:2003-10-09 19:05
200分都没人来拿?
|
|
|
5楼#
发布于:2003-10-10 11:15
别人怎么会知道你的代码的问题??这个不是高分就可以的事情啊。
你只说有问题,什么样的问题都不说,什么地方出的问题也不说。 我当然可以肯定的说,肯定是你的代码写的不对啦,呵呵。 自己慢慢折腾就慢慢清楚了。 |
|
|
6楼#
发布于:2003-10-11 11:55
大哥,我只是想看看有没有哪位老兄做过和我类似的事情,可以交流一下,你要有兴趣或者我们可以讨论讨论,没兴趣就一边呆着,废话就免说了吧.
|
|
|
7楼#
发布于:2003-10-11 19:15
问题解决,放分!
|
|
|
8楼#
发布于:2003-10-13 13:18
能不能介绍下?
|
|
|
9楼#
发布于:2003-10-14 09:59
能不能介绍下? 我用NdisHook处理,之前的情况走网卡的情况一直是没有问题的,但NdisWan的情况通信一会儿总会Down机,出错的情况也不稳定,后来把代码调整了一下后发现经常会看到Buffer不对,于是我调整了内存分配方式,问题竟然就解决了. 奇怪的是之前Buffer经常分配不成功,但分配的函数竟然总是返回成功信息,以至于不好定位问题. 教训是:需要经常分配较大内存的情况,最好使用预分配的Buffer链.感觉比旁视列表的机制都要来得稳定,可能是我的旁视列表写的不好吧. |
|
|
10楼#
发布于:2003-10-14 13:52
[quote]能不能介绍下? 我用NdisHook处理,之前的情况走网卡的情况一直是没有问题的,但NdisWan的情况通信一会儿总会Down机,出错的情况也不稳定,后来把代码调整了一下后发现经常会看到Buffer不对,于是我调整了内存分配方式,问题竟然就解决了. 奇怪的是之前Buffer经常分配不成功,但分配的函数竟然总是返回成功信息,以至于不好定位问题. 教训是:需要经常分配较大内存的情况,最好使用预分配的Buffer链.感觉比旁视列表的机制都要来得稳定,可能是我的旁视列表写的不好吧. [/quote] 谢谢了。 |
|
|
11楼#
发布于:2003-10-14 19:26
能介绍一下ndishook怎么截获ndiswan吗?
哪怕一个思路也行? 我会给分的。 |
|
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版主可以给些指点? |
|
|
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里也没有啊? 能否指点一下? 感激不尽! |
|
14楼#
发布于:2003-10-15 15:23
引用: 不知道你是怎么做的,不知道是不是有什么更好的处理. 我是这样做的,Hook Ndis.sys的四个函数: NdisRegisterProtocol NdisDeregisterProtocol NdisOpenAdapter NdisCloseAdapter 在NdisOpenAdapter的时候创建Adapter列表,这时候哪个Adapter是802.3哪个是NdisWan的都已经知道了,然后在OpenAdapterCompleteHandler里得到NDIS_OPEN_BLOCK,处理各个网卡的Send/SendPacket接口,这里OpenAdapterCompleteHandler在NdisRegisterProtocol的时候处理NDIS_PROTOCOL_CHARACTERISTICS可以得到. 这个文档可以看看,不知对你是否有用. |
|
|