阅读:2139回复:7
包池(Packet pool)和缓冲区池(Buffer pool)的作用?
驱动中分配包池(Packet pool)和缓冲区池(Buffer pool)的作用?
既然分配了包池和缓冲区池,为什么还要(用NdisMAllocateSharedMemory)分配共享内存呢? |
|
沙发#
发布于:2004-04-04 22:32
我也想知道
关注中。。。。 |
|
|
板凳#
发布于:2004-04-05 21:38
这个Pool里面分配的是Packet和Buffer的描述符,不是真正的空间,真正的空间是要另外分配,然后挂接上去的
|
|
地板#
发布于:2004-04-07 11:15
这个Pool里面分配的是Packet和Buffer的描述符,不是真正的空间,真正的空间是要另外分配,然后挂接上去的 能否详细一点,我也急需着方面的资料(关于数据的收发例程怎么写啊!) PNDIS_PACKET怎么用啊? 有没有详细的资料介绍给我一份flyhobo@haotmail.com 谢了 :P |
|
|
地下室#
发布于:2004-04-08 22:13
这样理解不知对不对:包池里放的是“成品”,而缓冲池就是“工厂”,用来加工包,也就是在缓冲池中按自己的要求形成需要的包。
关注中.................. |
|
|
5楼#
发布于:2004-04-08 22:16
还有:包描述符链和缓冲区描述符链是怎么形成的啊?
|
|
|
6楼#
发布于:2004-04-09 11:29
Packet Pool中放的是许多空白Packet描述符
Buffer Pool中放的是许多空白Buffer描述符 Packet描述符是用来描述Packet的特性的,包括Packet的内容,内容在哪里呢,在Buffer描述符中的一个指针指向的那块缓冲区中, 也就是所Packet中放着一个指向Buffer描述符的指针和其它一些信息 Buffer描述符中放着一个指向一块真正内存区域(用来存放数据包)和其它一些信息。 Pool的作用就是预先分配许多空白描述符,需要是只需直接提取,而不要重新分配,提高效率 |
|
7楼#
发布于:2004-04-09 15:44
上面说的有点道理,系统不能无休止的为收到的包分配空间,为了保证被网络中的包一下子吃掉所有内存,这个池也是必要的,当池满时候也就不再处理新到的包.
|
|
|