jinsin
驱动牛犊
驱动牛犊
  • 注册日期2002-11-12
  • 最后登录2005-05-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2434回复:13

终于搞定98下的pppoe的安装

楼主#
更多 发布于:2003-07-24 22:16
终于搞定98下的pppoe的安装,要对myndi进行不少的修改,否则不能支持多网卡.

最新喜欢:

blueairblueai...
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
沙发#
发布于:2003-07-24 22:44
hehe,有收获:)


http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
liuzq
驱动小牛
驱动小牛
  • 注册日期2003-05-25
  • 最后登录2004-06-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-07-25 09:42
jinsin

详细点说说
ivan58
驱动牛犊
驱动牛犊
  • 注册日期2003-05-04
  • 最后登录2007-09-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-07-28 09:50
是啊,到底要做些什么样的修改啊,详细点
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
地下室#
发布于:2003-07-30 10:35
其实只需要改一点就够了:)

RETERR PRIVATE MyProNdiQueryBind
(
HNDI hNdi,
HNDI hNdiToBind,
UINT uBindType
)
/////////////////////////////////////////////////////////////////////////////
//
// MyNdiQueryBind
//
// Description:
// Handles NDI_QUERY_BIND message sent by NetDi to inform the installer
// that an upper or lower binding is about to be added by NdiBind.  
//
// Arguments:
// hNdi
// Ndi object handle
// hNdiToBind
// Ndi object handle that is to be bound to first Ndi object
// uBindType
// NDIBIND_UPPER Validate that hNdiToBind can be bound to hNdi\'s upper bindings
// NDIBIND_LOWER Validate that hNdiToBind can be bound to hNdi\'s lower bindings
//
// Return:
// Procedure should return OK if the binding is valid. Otherwise is should
// return NDI_ERROR.  The procedure should probably display a warning message
// if it invalidates a potential binding.
//
/////////////////////////////////////////////////////////////////////////////
{
RETERR reError;
    HNDI    ndiLower;
    HNDI    ndiUpper;
    char    szBuf[LINE_LEN];
    char szDeviceID[MAX_RES];
    int     iMaxInstance = 1;

TRACE_ENTER( \"MyProNdiQueryBind\" );    
//return OK;

// The following does exactly what the default NDI_QUERY_BIND handler does for transports.
// The real problem is to avoid all of those nasty select boxes for binding to multiple
// existing net cards.  This happens because NetDi does a DiBuildCompatDrvList for the
// Next new transport device instance in just the same way that IpDetect does it to install
// MSTCP.  However our inf file has not been properly installed into the driver database
// so DiBuildCompatDrvList comes up with bupkiss.  Copying the inf file beforehand in the
// inf file only makes the situation worse, oh well.

    if ( ((reError = NdiIsNdi( hNdi )) == OK) && ((reError = NdiIsNdi( hNdiToBind )) == OK) )
{
switch ( uBindType )
{
case NDIBIND_UPPER:
ndiLower = hNdi;
ndiUpper = hNdiToBind;
break;

default:
ASSERT( uBindType == NDIBIND_UPPER || uBindType == NDIBIND_LOWER );

case NDIBIND_LOWER:
ndiLower = hNdiToBind;
ndiUpper = hNdi;
break;
}
                    
        // MyDisplayBinding(ndiUpper,ndiLower,uBindType,0);
          
           //debugprintf(0,\" card name: %s\" ,szDeviceID);
        
// If we have a matching interface and we\'re not all ready bound
// to it then we need to check to see if we support multiple
// lower bindings.  If not we just return the values from NdiIsBound
// or NdiCompareInterface.  If we do support multiple lower bindings
// then we check merely to see if this instance all ready has one.

if ( (reError = NdiIsBound( ndiLower, ndiUpper )) != OK )
{
if ( (reError = NdiCompareInterface( ndiLower,
NDI_EDGE_UPPERRANGE,
ndiUpper,
NDI_EDGE_LOWERRANGE )) == OK )
{
*szBuf = 0;

NdiRegQueryValue( ndiUpper,
 REGSTR_PATH_NDI,
 INFSTR_MAXINSTANCE,
 szBuf,
 sizeof(szBuf) );

if ( *szBuf )
iMaxInstance = atoi(szBuf);

if ( iMaxInstance != 1 )
{
// return ERR_NDI_INSTANCE_ONCE if the object all ready
// has a lower binding.  NdiIsBound will return OK if
// ndiUpper all ready has a binding.

/*
if ( NdiIsBound( NULL, ndiUpper ) != ERR_NDI_NOTBOUND )
// reError = ERR_NDI_INSTANCE_ONCE;
{
#ifdef _DEBUG
debugprintf( DEBUG_LEVEL_DEBUG, \"Here\'s Johnny!!!\" );
#endif
reError = ERR_NDI_NOTBOUND;
}
*/
//stop the dial card binding.
reError = NdiGetDeviceId(ndiUpper,szDeviceID,MAX_RES);
           if(!stricmp(szDeviceID,\"*PNP8387\") )
           reError = ERR_NDI_NOTBOUND  ;
          
           reError = NdiGetDeviceId(ndiLower,szDeviceID,MAX_RES);
           if(!stricmp(szDeviceID,\"*PNP8387\") )
           reError = ERR_NDI_NOTBOUND  ;
          
// Here\'s my strategy:
// NetDi basically installs a new instance just like we
// would however he doesn\'t add all the nice stuff that
// we do.  Let\'s see if we can do it better.
}
}
}
}

TRACE_NDILEAVE( \"MyProNdiQueryBind\", reError );
}


在inf文件中,只需要对protocol加上这个dll,miniport不加。
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
jinsin
驱动牛犊
驱动牛犊
  • 注册日期2002-11-12
  • 最后登录2005-05-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-07-30 14:26
呵呵,搞出来了.殊途同归。不过,你要测试一下多网卡,而且98和98二和win me也有些不一样。这几天,是把98骂惨了
jinsin
驱动牛犊
驱动牛犊
  • 注册日期2002-11-12
  • 最后登录2005-05-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-07-30 14:27
呵呵,搞出来了.殊途同归。不过,我完全按照ras的机制来的,protocol有个proc,miniport也有个proc。你要测试一下多网卡,而且98和98二和win me也有些不一样。这几天,是把98骂惨了
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
7楼#
发布于:2003-07-30 21:13
在98 se .win me下测试通过.

总共花了两天.第一天搞明白了它怎么绑定,第二天修改程序。

http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
8楼#
发布于:2003-07-30 21:15
在双网卡机器上测试通过,还需要怎么试?

拜托下次发帖时不要只是改一点就说很多,弄得我以为少改了多少。

你只需要对protocl加dll,其它不用,否则很麻烦。
试过增删改网络协议,卡,服务。没有问题。
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
jinsin
驱动牛犊
驱动牛犊
  • 注册日期2002-11-12
  • 最后登录2005-05-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-07-30 22:14
你既然知道在miniport中加mydll.dll麻烦,怎知我改的地方不多。拜托不要用你自己实现的方法的工作量来考虑别人另一种方法的工作量。

你可以自己试一下在miniport中加入dll中看看,简单的去掉ppp adapter和pppoe protocol的绑定根本就行不通。

raspppoe无论在protocol和miniport中都放入dll是有它自己的道理的。

如果,你所有的测试通过,那证明你找到了简单的办法。本来,myndi.dll并不难理解,只是测试要花时间。

我想,程序员一定要避免‘文人相轻‘的这种现象。这是目前的程序员的通病。
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
10楼#
发布于:2003-07-31 09:26
hehe. sorry.
可能是表达或误会, 如果确实象你理解的那样,我表示歉意.
当然,其它地方也改了, 只是不太重要, 所以没有帖出来.
我认为我给出的提示可以解决一般的问题了.

当然,如果真象你说的那样,有特殊问题,我就要向你请教了:)

不过你说的那些话确实让我产生了误解.

我不知道你说的还有什么问题? 愿意一起交流:)

我们在实际的环境中测试过, 目前没发现特殊问题, 或许是运气比较好吧?
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
jinsin
驱动牛犊
驱动牛犊
  • 注册日期2002-11-12
  • 最后登录2005-05-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-07-31 11:01
我还没有测试你说的那种方式,可能也是对的.但是在miniport中加入dll确实做起来很麻烦,如果你的这种方式可以解决的话,那到是个很好的办法.
daisyboy
驱动小牛
驱动小牛
  • 注册日期2002-10-24
  • 最后登录2012-05-21
  • 粉丝3
  • 关注0
  • 积分599分
  • 威望140点
  • 贡献值1点
  • 好评度56点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-08-05 09:24
其实只需要改一点就够了:)

在inf文件中,只需要对protocol加上这个dll,miniport不加。


我的PPPOE程序里怎么没有老大说到的这块代码???
合作c/c++/ndis/pppoe/802.1x!
zhaoxf007
驱动牛犊
驱动牛犊
  • 注册日期2004-08-04
  • 最后登录2010-08-24
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-08-05 19:18
各位老大快来看看,我从网站下载了pppoe拨号源码,我解压后就进行安装,可是总是提示错误,错误码好像是0X0008071,好像是,我的系统是2000 Professional,在其他机器上试也是一样,我自己用ddk编译出来sys,再安装还是这个问题,帮忙看看怎么回事??
游客

返回顶部