阅读:3281回复:40
这是 Passthru 的一个 BUG 吗?
今天研究 Passthru 的 INF 文件时发现其中有两句:
Class = NetService ClassGUID = {4D36E974-E325-11CE-BFC1-08002BE10318} 可我查了一下 DDK,NetService 的 GUID 明明是 {4D36E975-E325-11CE-BFC1-08002BE10318} 啊,《Windows 2000驱动程序开发大全》里面跟 DDK 里面写的一样啊,这是怎么回事?不会是故意的吧? |
|
最新喜欢:souren |
沙发#
发布于:2002-12-04 17:05
而在 netsf_m.inf 中的是正确的:
Class = Net ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318} |
|
板凳#
发布于:2002-12-04 17:14
你看一下xp的ddk,里面就是
NetService {4D36E974-E325-11CE-BFC1-08002BE10318} |
|
|
地板#
发布于:2002-12-04 17:15
呵呵,又混到分了, :D
|
|
|
地下室#
发布于: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} |
|
|
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 下也没出什么问题啊,这个是不是最好改一下? |
|
6楼#
发布于:2002-12-04 17:38
是2k DDK的文档写错了,你看一下2k的ddk里面的例子,
Class = NetTrans ClassGUID = {4d36e975-e325-11ce-bfc1-08002be10318} 那本书就是翻译的ddk,ddk错了他当然也错了, |
|
|
7楼#
发布于:2002-12-04 17:44
和大家有同感,我们这些人成了微软的专职测试人员,
可悲!!! 可怜!!! |
|
|
8楼#
发布于:2002-12-04 18:06
是2k DDK的文档写错了 哦,原来是这样,没想到! 呵呵,给分! |
|
9楼#
发布于:2002-12-04 18:11
edust
能不能帮个忙,给段NAT计算Checksum的计算代码,包括偶数和奇数长度的 mail: qiang.fu@mwcard.com |
|
|
10楼#
发布于:2002-12-04 18:20
fuq_dddd,我现在用的是效率最差的完全校验,没有用 RFC 里面提供的简便算法,不过也许我们可以一起研究一下!
|
|
11楼#
发布于:2002-12-04 18:24
RFC里面给出的应该是通用,
不过有一点,只给出了偶数长度的,同时也没有说明奇数长度的有什么区别, 不过先把你的完全校验的共享一下好了,我手头没有完整的代码。 |
|
|
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] |
|
13楼#
发布于:2002-12-04 18:34
唉,这个论坛程序不支持“PRE”标签,又会去掉 Space 和 Tab,代码贴出来真难看!有什么解决方法?
|
|
14楼#
发布于:2002-12-04 18:41
在RFC中对新老数据都进行了计算,
但你的这段代码好象与老数据无关,这是为什么? |
|
|
15楼#
发布于:2002-12-04 18:51
呵呵,我不是说了吗,我现在用的是效率最差的完全校验,就是把改过的包用标准算法进行了重新计算,所以它跟旧包没关系。
|
|
16楼#
发布于:2002-12-04 18:59
仔细看了一遍RFC里面的,实际上也将全部的数据计算了以便,
总之,所有数据还是要重新计算一遍 |
|
|
17楼#
发布于:2002-12-04 19:18
哦?是吗?说实话,我还没仔细看过呢,我一直以为它只计算了改变的部分。
|
|
18楼#
发布于:2002-12-05 11:44
哦?是吗?说实话,我还没仔细看过呢,我一直以为它只计算了改变的部分。 你是对的,我试验了一下,RFC里的代码只需要计算修改过的部分就可以 |
|
|
19楼#
发布于:2002-12-05 12:02
老兄有了奇校验的代码后通知一声,唉今天心情不爽
|
|
上一页
下一页