You need to look further down the stack than RtlFreeHeap, etc. Those are
the memory API's and I would expect to see them in a memory analysis, the
important bit is _who_ is calling them.
As to why it doesn't happen on another machine, I can't say. It could be
that there is only 1 code path that leaks and that on the other test machine
this code path is either not being hit or is hit much less frequently. This
is often the case where you have something like:
try
{
AllocateMemory
...Do Cool Stuff...
Release Memory
}
catch(...)
{
AllocateMoreMemory
Write An Error
FreeMoreMemory
}
return
In this case, if the try failed during the ...Do Cool Stuff... section, the
memory would leak, but otherwise you would be fine. This happens more often
than you would think (so often so, that one method of tracking down leaks is
to grep the try blocks and make sure catch blocks clean up).
If you have a profiler available (VTune?), you may be able to identify the
culprit.
Pat
"Thomas Eiszler" <teiszler.DeleteThis@notifycorp.com> wrote in message
news:O5XFo91yEHA.2040@tk2msftngp13.phx.gbl...
> Well if I put the two .dlls (one is the ATL COM .dll and the other is the
> dll that is wrapped by the ATL COM .dll so that I can use its functions
> from
> php) and the php files onto another test machine (also Win2k, IIS 5) this
> problem doesn't happen. Could it possibly have something to do with the
> COM
> .dll not unregistering? I built the .dll on this machine in VC++ 6 and
> that
> is really the only difference between this machine and the other one I
> tested on. I have used WinDBG and other debug tools to try and view the
> dumps that were generated during my testing and they all pointed to
> functions in ntdll.dll like RtlFreeHeap. I use unset to delete the COM
> object in php after I am done using the functions of the dll. I hope this
> helps explain my situation better.
>
> Thansk for your response Pat and hopefully you will have some more advice.
>
> Thanks.
>
><!-- ~MESSAGE_AFTER~ -->
>> Stay informed about: DLLHOST High Mem Usage