Article ID: 2554587 - View products that this article applies to.
If one DLL allocates a resource (for example, memory) but a different DLL is responsible for freeing this resource, the leak check in Application Verifier (AppVerifier) may generate false positives in Windows 7, in Windows Server 2008, and in Windows Server 2008. This issue is also seen when you use third-party test suites that include AppVerifier as a required component, because these test suites are not designed to recognize the limitation of AppVerifier's Leak Detection feature. For example, if foo.dll allocates memory and passes it on to bar.dll, and if foo.dll is unloaded before the memory is freed by bar.dll, AppVerifier reports verifier stop 0x900 saying that foo.dll is leaking memory when in fact bar.dll may free this memory at some point.
Therefore, third-party certification suites that include AppVerifier leak check as a required component fail drivers in their certification process. Microsoft test suites (WLK and WinParty) include AppVerifer but do not enable the Leak detection feature as a default option and therefore pass without this being the cause for failure.
The leak check in AppVerifier works under the assumption that the DLL that allocated the memory is responsible for freeing the memory before it is unloaded. It assigns the ownership of resources to DLLs when the resources are acquired, and it reports any outstanding resources as leaks when the DLL is unloaded. However, this does not work well in scenarios in which one DLL allocates the memory but another DLL frees this memory.
Report any issues from the leak check to the driver owners. However, do not fail the test because of these issues.
The leak check in AppVerifier can help find memory leaks. However, if you decide to use this tool, you should be aware of the limitation that is mentioned in the "Cause" section.
To disable the leak check in AppVerifier, follow these steps:
(http://go.microsoft.com/fwlink/?LinkId=151500)for other considerations.
Article ID: 2554587 - Last Review: May 24, 2012 - Revision: 4.0