阅读:1518回复:3
【求助】关于WINCE5.0下无线网卡驱动load/unload时内存泄露的问题
遇到问题:开发的无线网卡驱动在WINCE5.0下有内存泄露的状况。具体表现为,只要load上驱动,不做任何scan和收发包的动作,然后紧接着就unload驱动(操作为suspend/resume或者拔查卡片),系统内存占用就会增加20K-25K左右,每次都是这样。
之前有用Entrek的TOOLBOX1.4来追踪内存泄露的问题,但是该工具一旦将驱动的\Windows\DLL文件加入到监测环境中,在WINCE5.0平台上插入卡片后就无法load驱动了。 请教各位大侠这种情况还有什么其他的工具可以用来跟踪内存泄露的问题吗? PS:为了避免动态分配内存存在的问题,驱动中的内存都采用静态分配;通过检查代码,所有申请的静态内存在驱动unload的时候都会释放,内存的申请和调用都是用的NdisAllocateMemory和Ndisfreememory。所以怀疑WINCE系统中(NDIS)是否存在内存使用的陷阱?!因为20K也不是个小数目啊。同一份source code在WINDOWS下编译,在XP下运行就不存在这个内存泄露的问题,真的很奇怪! 谢谢指教! |
|
沙发#
发布于:2007-03-29 09:07
我靠 这个诡异的问题解决了!原来是没有用NdisFreeEvent 释放事件资源,问题在于这个函数只在WINCE下面有,WINDOWS下的NDIS是没有的!!!只要调用NdisFreeEvent释放掉NdisInitializeEvent的时候申请的资源就可以了。
|
|
板凳#
发布于:2007-03-29 22:25
呵呵,恭喜哈!
|
|
|
地板#
发布于:2007-04-03 16:49
搂主能提供一套无线驱动方案吗?
gold_fall@163.com |
|