阅读:1214回复:4
有关于Packet中的Private的两个参数Head和Tail
我在passthru中看到有下面这两行代码
MyPacket->Private.Head = Packet->Private.Head; MyPacket->Private.Tail = Packet->Private.Tail; 这个head和tail的作用到底是什么呀,如果按照private结构体的定义,head是chain的第一个buffer,而tail是chain的最后一个buffer,那岂不是head和tail里面装的就是数据吗? 可是我记得数据是存在headerbuffer和lookaheadbuffer里面的啊,这个怎么理解? 各位大侠帮帮忙了,帮忙指导一下,谢谢了:) 另外,初次发贴,那个分是怎么送出去的啊,我设了给分20,可是不知道怎么送出去,嘿嘿,不好意思,哪位顺便也告诉一声:) |
|
沙发#
发布于:2004-03-31 10:36
我算明白了一点,
MyPacket->Private.Head = Packet->Private.Head; MyPacket->Private.Tail = Packet->Private.Tail; 里面存的是数据报文,如:系统发出的ping包,icmp包等等 而headerbuffer和lookaheadbuffer里面存的是数据包的包头和真正数据,好像是这样的 |
|
板凳#
发布于:2004-03-31 11:14
你错了,
Packet是网络包的描述符,在windows中一个包可能是有很多段缓冲buffer组成的,每一个buffer也是由一个buffer的描述符来描述的,这些描述符构成一个链表。Private.Head和Private.Tail分别指的就是这个链表的头和尾。你可以根据这些描述符来获得包的完整内容。 |
|
|
地板#
发布于:2004-03-31 12:59
哦,谢谢:)
|
|
地下室#
发布于:2004-04-01 11:07
我想请问一下,中间层驱动有负责传输数据吗?我看passthru里面,不管是收还是发都是只是涉及到包头和一些参数的拷贝,并没有具体数据的拷贝,我想是不是中间层驱动只是发出一些指令,让小端口驱动去完成数据的传输啊,可是那数据又是怎么传到应用层的呢?不是很明白,请指导一下,谢谢啦:)
|
|