zhangchunxia
驱动牛犊
驱动牛犊
  • 注册日期2002-03-27
  • 最后登录2004-05-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1208回复:0

znsoft!我问你的问题怎么不见了???

楼主#
更多 发布于:2002-10-09 08:42
znsoft:
    你好!
    我用driverworks2.5开发了win2000的wdm驱动程序,在里面加入了对WMI的支持,从应用程序调试WMI的功能,其他一切都正常,可是吃内存现象非常严重。
    应用程序 ,通过winmgmt.exe, 调用驱动程序在WMI data Block上挂接的方法时,winmgmt.exe 所占用的内存急速上升,总内存也急速上升(我从任务管理器得到有关内存的信息);但当应用程序运行完后,winmgmt.exe所占内存全部释放,而总内存却几乎不释放,这样调用多次后,内存就不够用了,只得重新启动计算机。曾做过如下测试:
     1,此应用程序 ,通过winmgmt.exe, 调用其他的WMI服务,就不会有这样的事。
     2。驱动程序中,根据driverworks文档一步步加入对WMI的支持, 在所加的method中什么也不做,如下
NTSTATUS  Pci9112Device::GetSample(
Pci9112Data * pObject,
ULONG insize,
ULONG outsize,
PUCHAR Buffer,
PULONG pBufferUsed
                                )
{
         *pBufferUsed = 0;
return STATUS_SUCCESS;
UNREFERENCED_PARAMETER(insize);
UNREFERENCED_PARAMETER(outsize);
UNREFERENCED_PARAMETER(pObject);
         UNREFERENCED_PARAMETER(Buffer);    
}
     内存依旧上涨。
     3,而如果同样调用WMI的属性也不会有吃内存的现象。这使我很纳闷,是不是有什么地方设置不正确,或者是driverworks的BUG,或别的什么??
     希望得到znsoft的大力相助!在此,我先谢谢了!
                                    张春霞
                                    2002 9 16
nice
游客

返回顶部