iacceptit
驱动小牛
驱动小牛
  • 注册日期2002-05-30
  • 最后登录2003-07-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2082回复:12

关于拨号实现的疑问。(100)

楼主#
更多 发布于:2002-07-29 11:18
现在我想完成passthru的拨号实现,看完了ppp.ppoe的rfc.
也搜了以前的一些贴子,但还是不太明白。
有人说xp上已经实现了,我看了一下源码,发现添加的对拨号支持的代码很少。也没有调用nidswan的函数,也没有协议转换的部分。不晓得是怎么回事。
另,有人说, 于拨号软件有关,那如果最简单的完成功能,那要使用什么软件,怎么实现。如果实现的比较全面,应该怎样做。

谢谢。
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-07-29 11:42
记得前面有个贴子讲用imd实现pppoe,你可以找找看!

那是一个设计文档,讲的很详细且很不错的说!
moqingsong
论坛版主
论坛版主
  • 注册日期2002-04-07
  • 最后登录2011-02-03
  • 粉丝0
  • 关注0
  • 积分74分
  • 威望71点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-07-29 12:05
passthru如何和拨号网络绑定:
   1. 修改inf。netsf.inf文件中有这么一行:
HKR, Ndi\\Interfaces, FilterMediaTypes,  
 , \"ethernet, tokenring, fddi\"
其中ethernet,tokenring,fddi指定了要绑定的介质类型。
把这句话改为:ethernet, tokenring, fddi, wan
   2. passthru.c里面定义了
NDIS_MEDIUM      MediumArray[3]=NdisMedium802_3,
NdisMedium802_5,NdisMediumFddi
    现在需要加上NdisMediumWan.
   3. 在miniport.c的MpInitialize函数的开头:
    NDIS_MEDIUM    medium;
    if(pAdapt->Medium ==NdisMediumWan)
       medium = NdisMedium802_3;
    for (i = 0; i < MediumArraySize; i++)
{
  if (MediumArray == medium)
  {
 *SelectedMediumIndex = i;
 break;
  }
}
ok,就这些。


xp确实是实现了的,不信你自己编译一下passthru,网拨号网络上绑一下不就明白了吗。
按第一贴的“给分”键,给分。
iacceptit
驱动小牛
驱动小牛
  • 注册日期2002-05-30
  • 最后登录2003-07-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-07-29 14:50
斑竹测试过么?
我之所以感到疑惑就是因为pppoe的文档中说imd要进行pppoe等包格式的转换且要替换成nidswan的函数,而xp中,却并没有解决这些问题。所产生的变化,就像斑竹说的那样。

我不知斑竹和swift对格式转换,及替换nidswan函数的必要性的理解。
moqingsong
论坛版主
论坛版主
  • 注册日期2002-04-07
  • 最后登录2011-02-03
  • 粉丝0
  • 关注0
  • 积分74分
  • 威望71点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-07-29 15:11
斑竹测试过么?
我之所以感到疑惑就是因为pppoe的文档中说imd要进行pppoe等包格式的转换且要替换成nidswan的函数,而xp中,却并没有解决这些问题。所产生的变化,就像斑竹说的那样。

我不知斑竹和swift对格式转换,及替换nidswan函数的必要性的理解。

我感觉,你在这里好像有一个概念问题。不知道我理解的对不对。
ppp(ndiswan)和pppoe应该是两个完全不同的协议.
xp passthru实现的是对ppp也就是拨号网络的支持。

使用imd来实现pppoe的方法你可以参看这篇文章。
http://www.driverdevelop.com/read.php?t=A&id=83
就是用讲怎样用passthru实现。


[编辑 -  7/30/02 by  moqingsong]
按第一贴的“给分”键,给分。
moqingsong
论坛版主
论坛版主
  • 注册日期2002-04-07
  • 最后登录2011-02-03
  • 粉丝0
  • 关注0
  • 积分74分
  • 威望71点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-07-30 12:27
可算能看了,谢谢站长。
按第一贴的“给分”键,给分。
iacceptit
驱动小牛
驱动小牛
  • 注册日期2002-05-30
  • 最后登录2003-07-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-07-30 17:08
我按斑竹的方法试了一下,可是不行呀。
拨号后,不通过passthru.

另,用xp的ddk,编译一下xp的passthru.但在2k运行是蓝屏,错误是:设备入口点找不到。

麻烦,帮忙找一下原因。

谢谢!
moqingsong
论坛版主
论坛版主
  • 注册日期2002-04-07
  • 最后登录2011-02-03
  • 粉丝0
  • 关注0
  • 积分74分
  • 威望71点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-07-30 17:13
你用的是什么牌子的modem?
我用isdn是过没问题的。
不会是pppoe的adsl吧?
按第一贴的“给分”键,给分。
iacceptit
驱动小牛
驱动小牛
  • 注册日期2002-05-30
  • 最后登录2003-07-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-07-30 17:33
你用的是什么牌子的modem?
我用isdn是过没问题的。
不会是pppoe的adsl吧?


拨号上的,拨到拨号服务器上,

猫是mutimodem牌的,挺老的,不过应该于这没有什么关系吧。
moqingsong
论坛版主
论坛版主
  • 注册日期2002-04-07
  • 最后登录2011-02-03
  • 粉丝0
  • 关注0
  • 积分74分
  • 威望71点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-07-30 22:24
我按斑竹的方法试了一下,可是不行呀。
拨号后,不通过passthru.

另,用xp的ddk,编译一下xp的passthru.但在2k运行是蓝屏,错误是:设备入口点找不到。

麻烦,帮忙找一下原因。

谢谢!

你的机子上,不装ndiswan时装passthru能装上么?能截到数据么?
我觉得你是什么地方有一个很小的错误,跟编程好像都没什么大关系的样子。
我这样一个一个的问,问个五六次都不一定问得出来的感觉。
你要是实在自己找不找原因的话,就把你的安装步骤从最基本的步骤起仔细说一遍。把你的环境也仔细说一边。
也许能发现点蛛丝马迹。
按第一贴的“给分”键,给分。
.X.T.I.M.
驱动大牛
驱动大牛
  • 注册日期2001-09-22
  • 最后登录2021-08-25
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-07-31 00:45
都没说到点子上!!其实让不让你接受到WAN的包是有NDIS决定的!你在INF里面注册NDISWAN是写到注册表里面的!NDIS在启动你的IMD的时候会根据这个来决定你准备支持那些载体!一定会把包给你!这个是肯定的!!而且非常的肯定!为什么要在驱动里面把NDISWAN保存成802。3的格式呢??那是因为MODEM的驱动已经把PPP的包处理了!所以你实际上只收到802。3格式的包!但是却是从WAN设备传来的!所以你必须这么做!蓝屏的原因绝对不是因为载体支持的问题!!!是其他原因~~很小儿科的原因~~仔细的看看SOURCE文件!!尤其是他的注释!!!
<IMG src="http://www.microsoft.com/traincert/images/logos/mcp.gif" border=0> <IMG src="http://www.microsoft.com/traincert/images/logos/mcdba.gif" border=0><br> <IMG src="http://www.microsoft.com/traincert/images/logos/mcse.gif" border=0> <IMG src="http://www.microsoft.com/traincert/images/logos/mcsd.gif" border=0>
iacceptit
驱动小牛
驱动小牛
  • 注册日期2002-05-30
  • 最后登录2003-07-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-07-31 11:31
passthru如何和拨号网络绑定:
   1. 修改inf。netsf.inf文件中有这么一行:
HKR, Ndi\\Interfaces, FilterMediaTypes,  
 , \"ethernet, tokenring, fddi\"
其中ethernet,tokenring,fddi指定了要绑定的介质类型。
把这句话改为:ethernet, tokenring, fddi, wan
   2. passthru.c里面定义了
NDIS_MEDIUM      MediumArray[3]=NdisMedium802_3,
NdisMedium802_5,NdisMediumFddi
    现在需要加上NdisMediumWan.
   3. 在miniport.c的MpInitialize函数的开头:
    NDIS_MEDIUM    medium;
    if(pAdapt->Medium ==NdisMediumWan)
       medium = NdisMedium802_3;
    for (i = 0; i < MediumArraySize; i++)
{
  if (MediumArray == medium)
  {
 *SelectedMediumIndex = i;
 break;
  }
}
ok,就这些。


xp确实是实现了的,不信你自己编译一下passthru,网拨号网络上绑一下不就明白了吗。


1、在没拨号时,使用2k passthru没问题,各种dbgprint语句都能看到。

2、用modem 拨号,按照上述的步骤修改了。又改了ptrecieve,ptrecievecomplete.

3、拨号后,dbgprint语句都看不到了。

应该是猫没绑上把,不晓得为什么。

我对modem 的驱动一无所知,原来不光作模数转换呀,还要转换ppp到802。3呀
fenger_li
驱动老牛
驱动老牛
  • 注册日期2002-03-26
  • 最后登录2005-04-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-07-31 17:53
没问题的。仔细检查一下吧。

嗬嗬!
有点意思。。。 呵呵!
游客

返回顶部