Holy cow, I wrote a book!
What type of heaps are controlled by the
Any user-mode heap created by the
This includes the process heap (GetProcessHeap)
not the managed heap.
Some components use HeapCreate
under the hood.
If so, then those heaps would also be affected.
What versions of Windows support
The flag was introduced in Windows Vista and Windows Server 2008.
It is also available on Windows XP Service Pack 3.
In table form:
For operating systems that support it,
under what conditions will
termination on corruption
What is the effect of setting the subsystem major version in a DLL?
Will that control whether termination on corruption is enabled
for any heaps created by my DLL?
For the purpose of rule 2 above,
it is the major subsystem of the executable that decides whether
termination on corruption.
The major subsystem of any DLLs loaded by the process have no effect.
This is consistent with
other process decisions.
Can I enable termination on corruption for some heaps but not others?
Turning on termination on corruption turns it on for all heaps
in the process.
Can I disable termination on corruption after it has been enabled?
It is a one-way door.