阅读:1077回复:5
我有一个概念一直没有搞明白
我有一个概念一直没有搞明白:
在Packet = NdisGetReceivedPacket()时, 当Packet==NULL,当PacketSize <= LookAheadBufferSize该如何处理// 就是当PacketSize > LookAheadBufferSize时候(ping包大于128的时候)该如何处理// 我一直没搞明白,这里的LookAheadBufferSize到底是什么意思,他和PacketSize到底是什么意思啊,什么关系? 什么情况下PacketSize <= LookAheadBufferSize? 希望您能指教!!! 谢谢!! |
|
|
沙发#
发布于:2004-08-20 15:30
有的类型的网卡(及其驱动),特别是老的网卡,他们分配的PACKET等资源,不希望上层的协议,长时间的占用,或有OOB需要紧急处理,他就会在前视缓冲区中放置包的一部分,至少是报头,协议根据这个包头判断是否是他要处理的,如果不是,迅速告诉MINIPORT,DROP之。如果是,就COPY剩余的数据到自己的缓冲区(用NdisTransferData),然后把包迅速还给MiniPort.
|
|
板凳#
发布于:2004-08-20 17:05
非常感谢,小弟还有一个很EASY的问题,是关于断点的设置。
1、我在VMWARE+SOFTICE下BPX了一个断点,然后也发生了中断, 2、中断之后我用命令BC * 清除了所有的命令 3、然后关闭SOFTICE ,退出之后,就上不了网了,不知道什么原 因,请问我的步骤对么,我想是不是因为这次交互没有完成造成的, 请问老大该怎么办? 4、老大,能不能给一个在SOFTICE下面看到PACKET的过程,小弟不胜感激!!!! 回复结贴,谢谢,谢谢!! |
|
|
地板#
发布于:2004-08-20 17:36
对于1、2、3我无法解释,VM对于调试驱动来说和实际的机器所出现的状况是有区别的。也就是说是不客观的。
对于4,用SICE来看PACKET不是一个好主义,因为他不是简单的一块内存,挂一个BUFFER的包还可以,如果有几个BUFFER,要命!我一般是写一个读包的函数,然后用DBGVIEW看。 |
|
地下室#
发布于:2004-08-20 19:39
第四个问题解决方法....
softice先弄出来 敲 packet (这里是packet地址) 然后用眼睛看就行了..... Syntax PACKET [address] PACKET [address] [length] PACKET ETHERNET | TOKEN-RING | ARCNET | FDDI PACKET LINE | DETAIL | STRUCTURE PACKET RAW | STANDARD PACKET HELP 查看softice得command reference吧....... |
|
5楼#
发布于:2004-08-21 07:35
非常感谢tiamo,asmsys!
|
|
|