5566aaa
驱动牛犊
驱动牛犊
  • 注册日期2007-03-28
  • 最后登录2007-04-02
  • 粉丝0
  • 关注0
  • 积分60分
  • 威望7点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
阅读:1500回复:3

【求助】关于WINCE5.0下无线网卡驱动load/unload时内存泄露的问题

楼主#
更多 发布于:2007-03-28 12:45
  遇到问题:开发的无线网卡驱动在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下运行就不存在这个内存泄露的问题,真的很奇怪! 谢谢指教!
5566aaa
驱动牛犊
驱动牛犊
  • 注册日期2007-03-28
  • 最后登录2007-04-02
  • 粉丝0
  • 关注0
  • 积分60分
  • 威望7点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-03-29 09:07
我靠 这个诡异的问题解决了!原来是没有用NdisFreeEvent 释放事件资源,问题在于这个函数只在WINCE下面有,WINDOWS下的NDIS是没有的!!!只要调用NdisFreeEvent释放掉NdisInitializeEvent的时候申请的资源就可以了。
cygarm
驱动牛犊
驱动牛犊
  • 注册日期2006-11-29
  • 最后登录2013-12-29
  • 粉丝0
  • 关注0
  • 积分649分
  • 威望324点
  • 贡献值0点
  • 好评度62点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-03-29 22:25
呵呵,恭喜哈!
NAND Flash烧录器|烧写器|编程器
maisheng
驱动牛犊
驱动牛犊
  • 注册日期2007-04-03
  • 最后登录2011-09-23
  • 粉丝0
  • 关注0
  • 积分77分
  • 威望58点
  • 贡献值1点
  • 好评度7点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-04-03 16:49
搂主能提供一套无线驱动方案吗?
gold_fall@163.com
游客

返回顶部