|
晚辈在NDIS中间层开发一个协议。
协议要求,对NDIS中间层接口函数MiniPortSend截获的Packet进行修改,添入一块咱们协议定义的MyHeader。
MyHeader必须加在IPHeader的后边.
通过NdisGetFirstBufferFromPacketSafe,NdisGetNextBuffer,NdisQueryBuffer等函数到时可以对包中的内容进行修改。但是要在此原始包中加入MyHeader,就必须重新创建一个Mybuffer,然后用MyBuffer替换原始包中包含IPHeader的buffer。
现在我程序出现的问题是:调用NdisFreeBuffer函数对原始包替换下来的buffer进行释放的时候,发生异常,整个程序都跑不起来。
然后换了一种方法,使用NdisFreeMemory分别释放buffer中指针和buffer。
这样处理程序到时可以跑起来,但是跑着跑着内存又溢出了。
请各位前辈,帮我看看,这是怎么回事。
|
|