sirroom
驱动大牛
驱动大牛
  • 注册日期2001-07-30
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望11点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1690回复:3

我现在怀疑,版主手上的passthru for xp有问题

楼主#
更多 发布于:2002-06-01 12:31
版主,你说passthru for xp中的ptreceive中的代码有bug
你手上的代码(未修改前)是不是也象下面这样.
这个代码的意思难道不是如果NdisMedium802_3或是NdisMediumWan都要indicate??

我让我的modem强行走这条线(把if (Packet != NULL)等代码去掉),走这条线并无任何异常啊?
switch (pAdapt->Medium)
{
 case NdisMedium802_3:
 case NdisMediumWan://版主手上的passthru的好象没这句吧??
NdisMEthIndicateReceive(pAdapt->MiniportHandle,
MacReceiveContext,
HeaderBuffer,
HeaderBufferSize,
LookAheadBuffer,
LookAheadBufferSize,
PacketSize);
break;

 case NdisMedium802_5:
NdisMTrIndicateReceive(pAdapt->MiniportHandle,
MacReceiveContext,
HeaderBuffer,
HeaderBufferSize,
LookAheadBuffer,
LookAheadBufferSize,
PacketSize);
break;

 case NdisMediumFddi:
NdisMFddiIndicateReceive(pAdapt->MiniportHandle,
 MacReceiveContext,
 HeaderBuffer,
 HeaderBufferSize,
 LookAheadBuffer,
 LookAheadBufferSize,
 PacketSize);
break;

 default:
ASSERT(FALSE);
break;
}

认真看了一下,版主的意思好象就是把某个地方加上一句,所以偶断定,版主手上的passthru与大家手上的passthru不是一个版本的,对了,版主可以对比偶在关于<<ms员工的关于移值问题的答复中所附passthru进行对比,看是不是一样的>>

   难怪偶总觉得看不懂,我想可能这就是原因吧.haha

最新喜欢:

flyfoxflyfox znsoftznsoft
111
sirroom
驱动大牛
驱动大牛
  • 注册日期2001-07-30
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望11点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-06-01 12:35
怎么变得乱七八糟的,现在发的这个贴子就是拨号出来的,走的是ptreceive的线,
pAdapt->Medium is 0x       3 (ndismediumwan的吧).
没有任何问题啊.版主快看看自已的xpddk是不是beta版的啊.msdn里98ddk里带的xpddk也不象这个样子....
111
sirroom
驱动大牛
驱动大牛
  • 注册日期2001-07-30
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望11点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-06-01 12:36
已经实验完毕,没有疑问了.
111
HuYuguang
论坛版主
论坛版主
  • 注册日期2001-04-25
  • 最后登录2013-04-29
  • 粉丝3
  • 关注1
  • 积分92分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分1分
  • 专家分0分
地板#
发布于:2002-06-01 19:19
我很惭愧,这个问题我前天已经发现了。

是我的代码有问题,我的xp ddk没有问题,可是我的
passthru for xp却并不是ddk里面的那个,我不知道
从哪里搞了一个很相似的版本,可能是xp还没有出来的
时候搞的beta版,我是msdn的订户,所以能够很早就搞到
这些东西。时间比较早,里面的代码缺乏那一行,其他的
都基本相同(注释和变量名稍有不同。)当xp ddk正式版
到的时候,我也懒得去重装,其他人重装了,我当时用
windiff比较了一下,没有发现这一行。所以我就想当然
的认为有这个bug。

之所以对这个bug的印象如此深,是因为我在那个老版本
基础上作的移植,当时要移植到9x下面去,这个问题困惑
了我大约半个小时。当时我仔细比较了和passthru for 2k
的不同,也没有去比较正式版的区别,结果就造成了这个
错误。

前天我师兄做实验的时候告诉我说没有这个bug,我仔细
比较了区别之后发现是我的问题,我只好把那个老的ddk
删掉了,然后重新装了一个新的。

我的这个版本也不是你说的那个版本,那个《答复》里面
的版本我也看了,用windiff比较过一次,发现和我当时
的那个老版本几乎一样。所以我也没有太在意。因为移植
的最大困难不在于driver,而在于那个install dll。
《答复》基本上是针对98se的,我怀疑那哥们是否在
98版测试过。他当时一定也没有在morden上测试过,因为
那个版本里面也有这个ndiswan的bug。



版主,你说passthru for xp中的ptreceive中的代码有bug
你手上的代码(未修改前)是不是也象下面这样.
这个代码的意思难道不是如果NdisMedium802_3或是NdisMediumWan都要indicate??

我让我的modem强行走这条线(把if (Packet != NULL)等代码去掉),走这条线并无任何异常啊?
switch (pAdapt->Medium)
{
 case NdisMedium802_3:
 case NdisMediumWan://版主手上的passthru的好象没这句吧??
NdisMEthIndicateReceive(pAdapt->MiniportHandle,
MacReceiveContext,
HeaderBuffer,
HeaderBufferSize,
LookAheadBuffer,
LookAheadBufferSize,
PacketSize);
break;

 case NdisMedium802_5:
NdisMTrIndicateReceive(pAdapt->MiniportHandle,
MacReceiveContext,
HeaderBuffer,
HeaderBufferSize,
LookAheadBuffer,
LookAheadBufferSize,
PacketSize);
break;

 case NdisMediumFddi:
NdisMFddiIndicateReceive(pAdapt->MiniportHandle,
 MacReceiveContext,
 HeaderBuffer,
 HeaderBufferSize,
 LookAheadBuffer,
 LookAheadBufferSize,
 PacketSize);
break;

 default:
ASSERT(FALSE);
break;
}

认真看了一下,版主的意思好象就是把某个地方加上一句,所以偶断定,版主手上的passthru与大家手上的passthru不是一个版本的,对了,版主可以对比偶在关于<<ms员工的关于移值问题的答复中所附passthru进行对比,看是不是一样的>>

   难怪偶总觉得看不懂,我想可能这就是原因吧.haha
不再回忆从前,我已经生活在幸福当中。
游客

返回顶部