UMDH (User Mode Dump Heap) tool in 'Debugging Tools for Windows' analyze Windows heap memory and useful for detecting native memory leak.
Here is brief summary of how to use it.
(a) Run gflags.exe. Select [Image File], type filename and check [Create user mode stack trace database].
This enables data collection for the specifc process.
Alternatively the command line below can be run:
C> gflags -i notepad.exe +ust
(b) Set symbol path.
C> SET _NT_SYMBOL_PATH=c:\symbols
(c) Run UMDH.EXE
Take first snapshot of memory and run your application until memory leak.
Taks second snapshot and compare two snapshots and get the difference.
C>umdh -p:2868 > firstsnap.txt <== take first snapshot
C>umdh -p:2868 > secondsnap.txt <== take 2nd snapshot
C>umdh firstsnap.txt secondsnap.txt > diff.txt <== create diff file
C>notepad.exe diff.txt <== check the result