2btoo
驱动牛犊
驱动牛犊
  • 注册日期2001-11-03
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:1544回复:3

对MPSend的几点疑惑

楼主#
更多 发布于:2001-11-16 15:24
各位前辈:

    我们可以通过 virtualAddress 得到对收到的以太包的一些描述,14B MACHeader,20B IPHeader,后面TCP,UDT,ICMP……

    可是在 MPSend 中如何得到这些信息呢?在将要发送的层面上 Packet 并不是以太包的结构对吗?我在SoftICE下将要发送的包输出出来看,前面14B的以太头没错, 紧接着是好像是一个ARP的数据包再后面就看不出来是什么东西了,请各位高手指点!

最新喜欢:

luke_gemluke_g... moqingsongmoqing...
什么也不懂
baijbup
驱动牛犊
驱动牛犊
  • 注册日期2001-08-03
  • 最后登录2003-05-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-11-17 09:08
你仔细的看看DDK中关于PACKET的描述。
每个包的数据被分成几段,分别放在PACKET的几个
的BUFFER。这些BUFFER可以使用NDISGETNEXTBUFFER
NDISGETBUFFERSAFE等函数获取。你是不是得到
VIRTUALADDRESS后,直接从这个VIRTUALADDRESS开始
长度为包长的一段连续内存认为是整个包内容?
不是这样的!!!!!!
而且一般的包都是拟太网包头在一BUFFER中,后续数据
在另一个后几个不连续的BUFFER中。
************************ 寻找快乐的人 ************************
.X.T.I.M.
驱动大牛
驱动大牛
  • 注册日期2001-09-22
  • 最后登录2021-08-25
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-11-17 23:48
PACKET实际就是个链表,提供了头尾两节点和其他描述!包的BUFFER可以通过指针下移动的方法获得!当然也可以用NDIS自己带的操作函数!ARP的下面因该是没有东西的了!要不你看到的包就不是ARP!
<IMG src="http://www.microsoft.com/traincert/images/logos/mcp.gif" border=0> <IMG src="http://www.microsoft.com/traincert/images/logos/mcdba.gif" border=0><br> <IMG src="http://www.microsoft.com/traincert/images/logos/mcse.gif" border=0> <IMG src="http://www.microsoft.com/traincert/images/logos/mcsd.gif" border=0>
2btoo
驱动牛犊
驱动牛犊
  • 注册日期2001-11-03
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2001-11-18 11:03
不好意思,是我一时疏忽,现在问题已经解决了,谢谢各位,给大家添麻烦了。
什么也不懂
游客

返回顶部