Remove the shared heap functionality from kernel32 and ntdll.
mscomctl.ocx (part of the VB6 common controls) calls
HeapCreate(0x04000000,1,0), that flag is the old and undocumented
HEAP_CreateSystemHeap() tries to map memory at
0x80000000, this fails on Wow64 (and probably should for all 32-bit platforms for non-LAA EXEs).
Shared heaps date back to Win9x and Wine may have needed it to support running native DCOM. It doesn't appear that modern Windows really implements any shared heap functionality any more, every 'shared' heap created returns a different pointer (even in the same process).