Using UMDH to track down native heap memory leaks

No, I'm afraid I haven't taken the time to write about this in detail because Michael Morales has already done a great job of it. Remember though, not all memory leaks are native heap memory leaks. You could also be leaking managed objects (which are allocated in the managed heap for which the Common Language Runtime allocates chunks of virtual address space directly). You could also be getting "out of memory" because an allocation has failed due to address space fragmentation. Or some component that allocates virtual address space directly may have used it all up.