edust
驱动中牛
驱动中牛
  • 注册日期2002-04-02
  • 最后登录2003-06-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3281回复:40

这是 Passthru 的一个 BUG 吗?

楼主#
更多 发布于:2002-12-04 17:01
今天研究 Passthru 的 INF 文件时发现其中有两句:

Class     = NetService
ClassGUID = {4D36E974-E325-11CE-BFC1-08002BE10318}

可我查了一下 DDK,NetService 的 GUID 明明是 {4D36E975-E325-11CE-BFC1-08002BE10318} 啊,《Windows 2000驱动程序开发大全》里面跟 DDK 里面写的一样啊,这是怎么回事?不会是故意的吧?

最新喜欢:

sourensouren
edust
驱动中牛
驱动中牛
  • 注册日期2002-04-02
  • 最后登录2003-06-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-12-04 17:05
而在 netsf_m.inf 中的是正确的:

Class = Net
ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318}
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-12-04 17:14
你看一下xp的ddk,里面就是
NetService  {4D36E974-E325-11CE-BFC1-08002BE10318}
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-12-04 17:15
呵呵,又混到分了, :D
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-12-04 17:16
xp ddk里面是这样的
Network Class ClassGuid
Net           {4D36E972-E325-11CE-BFC1-08002BE10318}
NetTrans      {4D36E975-E325-11CE-BFC1-08002BE10318}
NetClient     {4D36E973-E325-11CE-BFC1-08002BE10318}
NetService    {4D36E974-E325-11CE-BFC1-08002BE10318}
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
edust
驱动中牛
驱动中牛
  • 注册日期2002-04-02
  • 最后登录2003-06-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-12-04 17:25
2000 DDK 里面是这样的:

Net  {4D36E972-E325-11CE-BFC1-08002BE10318}
NetTrans  {4D36E973-E325-11CE-BFC1-08002BE10318}
NetClient  {4D36E974-E325-11CE-BFC1-08002BE10318}
NetService {4D36E975-E325-11CE-BFC1-08002BE10318}

可是我把 XP 的 Passthru 安装到 2000 下也没出什么问题啊,这个是不是最好改一下?
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-12-04 17:38
是2k DDK的文档写错了,你看一下2k的ddk里面的例子,
Class       = NetTrans
ClassGUID   = {4d36e975-e325-11ce-bfc1-08002be10318}

那本书就是翻译的ddk,ddk错了他当然也错了,
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
fuq_dddd
驱动老牛
驱动老牛
  • 注册日期2002-10-15
  • 最后登录2009-10-09
  • 粉丝0
  • 关注0
  • 积分331分
  • 威望57点
  • 贡献值0点
  • 好评度28点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-12-04 17:44
和大家有同感,我们这些人成了微软的专职测试人员,

可悲!!! 可怜!!!
星星之火 可以燎原 每一个光亮 都可能是黎明 [img]http://joke.tom.com/img/assets/1/gaoxiao_80_910.gif[/img]
edust
驱动中牛
驱动中牛
  • 注册日期2002-04-02
  • 最后登录2003-06-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-12-04 18:06
 
是2k DDK的文档写错了


哦,原来是这样,没想到!

呵呵,给分!
fuq_dddd
驱动老牛
驱动老牛
  • 注册日期2002-10-15
  • 最后登录2009-10-09
  • 粉丝0
  • 关注0
  • 积分331分
  • 威望57点
  • 贡献值0点
  • 好评度28点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-12-04 18:11
edust

能不能帮个忙,给段NAT计算Checksum的计算代码,包括偶数和奇数长度的

mail: qiang.fu@mwcard.com
星星之火 可以燎原 每一个光亮 都可能是黎明 [img]http://joke.tom.com/img/assets/1/gaoxiao_80_910.gif[/img]
edust
驱动中牛
驱动中牛
  • 注册日期2002-04-02
  • 最后登录2003-06-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-12-04 18:20
fuq_dddd,我现在用的是效率最差的完全校验,没有用 RFC 里面提供的简便算法,不过也许我们可以一起研究一下!
fuq_dddd
驱动老牛
驱动老牛
  • 注册日期2002-10-15
  • 最后登录2009-10-09
  • 粉丝0
  • 关注0
  • 积分331分
  • 威望57点
  • 贡献值0点
  • 好评度28点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-12-04 18:24
RFC里面给出的应该是通用,
不过有一点,只给出了偶数长度的,同时也没有说明奇数长度的有什么区别,

不过先把你的完全校验的共享一下好了,我手头没有完整的代码。
星星之火 可以燎原 每一个光亮 都可能是黎明 [img]http://joke.tom.com/img/assets/1/gaoxiao_80_910.gif[/img]
edust
驱动中牛
驱动中牛
  • 注册日期2002-04-02
  • 最后登录2003-06-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-12-04 18:31
 
不过先把你的完全校验的共享一下好了,我手头没有完整的代码。


呵呵这个好说:)


USHORT
in_cksum(
    PUCHAR  pStartingByte,
    int     nByteCount )
{
register ULONG    sum  = 0;
register PUSHORT  addr = (PUSHORT)pStartingByte;

//
// Add 16-bit Words
//
while( nByteCount > 1 )
{
//
// 这是内部循环
//
sum += *(addr++);
nByteCount -= 2;
}

//
// 如果有剩余的字节的话就把它加上
//
if (nByteCount > 0)
sum += *(PUCHAR )addr;

//
// 将 32-bit 的和调整到 16-bit
//
while (sum >> 16)
sum = (sum & 0xffff) + (sum >> 16);

//
// Return one\'s compliment of final sum.
//
return (USHORT) ~sum;
}


[编辑 -  12/4/02 by  edust]
edust
驱动中牛
驱动中牛
  • 注册日期2002-04-02
  • 最后登录2003-06-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-12-04 18:34
唉,这个论坛程序不支持“PRE”标签,又会去掉 Space 和 Tab,代码贴出来真难看!有什么解决方法?
fuq_dddd
驱动老牛
驱动老牛
  • 注册日期2002-10-15
  • 最后登录2009-10-09
  • 粉丝0
  • 关注0
  • 积分331分
  • 威望57点
  • 贡献值0点
  • 好评度28点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-12-04 18:41
在RFC中对新老数据都进行了计算,
但你的这段代码好象与老数据无关,这是为什么?
星星之火 可以燎原 每一个光亮 都可能是黎明 [img]http://joke.tom.com/img/assets/1/gaoxiao_80_910.gif[/img]
edust
驱动中牛
驱动中牛
  • 注册日期2002-04-02
  • 最后登录2003-06-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-12-04 18:51
呵呵,我不是说了吗,我现在用的是效率最差的完全校验,就是把改过的包用标准算法进行了重新计算,所以它跟旧包没关系。
fuq_dddd
驱动老牛
驱动老牛
  • 注册日期2002-10-15
  • 最后登录2009-10-09
  • 粉丝0
  • 关注0
  • 积分331分
  • 威望57点
  • 贡献值0点
  • 好评度28点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2002-12-04 18:59
仔细看了一遍RFC里面的,实际上也将全部的数据计算了以便,

总之,所有数据还是要重新计算一遍
星星之火 可以燎原 每一个光亮 都可能是黎明 [img]http://joke.tom.com/img/assets/1/gaoxiao_80_910.gif[/img]
edust
驱动中牛
驱动中牛
  • 注册日期2002-04-02
  • 最后登录2003-06-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2002-12-04 19:18
哦?是吗?说实话,我还没仔细看过呢,我一直以为它只计算了改变的部分。
fuq_dddd
驱动老牛
驱动老牛
  • 注册日期2002-10-15
  • 最后登录2009-10-09
  • 粉丝0
  • 关注0
  • 积分331分
  • 威望57点
  • 贡献值0点
  • 好评度28点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2002-12-05 11:44
 
哦?是吗?说实话,我还没仔细看过呢,我一直以为它只计算了改变的部分。


你是对的,我试验了一下,RFC里的代码只需要计算修改过的部分就可以
星星之火 可以燎原 每一个光亮 都可能是黎明 [img]http://joke.tom.com/img/assets/1/gaoxiao_80_910.gif[/img]
edust
驱动中牛
驱动中牛
  • 注册日期2002-04-02
  • 最后登录2003-06-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2002-12-05 12:02
老兄有了奇校验的代码后通知一声,唉今天心情不爽
上一页
游客

返回顶部