kernel: use VirtualAlloc in GlobalAlloc16 to make such memory executable

Alexandre Julliard julliard at
Wed Jul 11 04:31:30 CDT 2007

Mikołaj Zalewski <mikolaj at> writes:

>  This patch is not enough to run Win16 programs on NX protected
> systems as there is also some code placed in the UMB by
> winedos/himem.c. I have a patch that makes the DOS area executable
> (see bug #8744) but I will have to look if that's what Windows
> does. In the mean time I'd like to know if there are some comments
> about this patch.

It's extremely wasteful, most GlobalAlloc blocks are fairly
small. What you should do is allocate them from an executable heap
instead of the default process heap.

Alexandre Julliard
julliard at

More information about the wine-devel mailing list