阅读:1391回复:3
各位兄弟帮个忙
我先在这里谢过了.
我的问题: 一. 在PtReceivePacket函数得到数据,放到另一段缓冲区,将数据的最后5个字节改为0x88,然后将此内存映射到一个NDIS_BUFFER中.再给mypacket,但是发现ping出现超时. 二.看了胡大侠的代码里一个函数 NDISAllocateBuffer有一个参数用到pDapt->RecvBufferPoolHandle,但我在发现ADAPT结构中没有成员RecvBufferPoolHandle,只有RecvPacketPoolHandle.这是为什么? 三.PtReceivePacket函数中调用IndicateReceivePacket后,Status为改变吗,它在什么情况下是XX_Success or xx_pending? 原代码在Status == NDIS_XX_RESOURCE就释放MyPacket描述符,那么我前面申请的资源都在这儿释放吗? 四. 程序里 Status != NDSI_XX_REOURCE ?1 :0 有什么用呢 小虾我刚初接触NDIS才几天,望各位前辈,大虾,多多指点. 不胜感谢谢 |
|
最新喜欢:okincn |
沙发#
发布于:2003-01-09 10:08
passthru里面没有分配buffer,所以没有RecvBufferPoolHandle
也没有send不ufferpool, |
|
|
板凳#
发布于:2003-01-10 13:16
谢谢回答,给10先
那是不是我们在Adapt结构中加一个RecvBufferpoolHandle 自己分配回收. 我这么做了. 但是在通知上层接收包后一调用ndisfreebuff就蓝屏,是什么原因. 另外我外到== resouresoure判断里从来没有调用,数据量一大内存就光了. |
|
地板#
发布于:2003-01-10 13:42
是在你的adapter里面加上,然后在openadapter的时候初始化bufferpool,每次你分配的buffer和packet都要自己释放,不过要注意释放的时机。
通知上层以后要看上层返回的是什么,如果不是pending就可以立刻释放,如果是pending就要在complete里面释放 |
|
|