VC6+ATL3で生成されたと見られるコードに対してだけ、OS側で
特殊な処理をしているんだと思う。この組み合わせで作られた過去の
プログラムが軒並みDEPに引っかかるとまずいから。

ちなみにVirtualAllocは64kb(正確にはSYSTEM_INFO::dwAllocationGranularity)単位で
メモリを予約するので、HeapAllocから置き換える時は注意。