阅读:1208回复:0
znsoft!我问你的问题怎么不见了???
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 |
|
|