There is no point to specify both MEM_RESERVE and MEM_COMMITfor VirtualAlloc

Dmitry Timoshkov dmitry at
Mon Jan 2 10:08:29 CST 2006

"Vitaliy Margolen" <wine-devel at> wrote:

> According to MSDN:
> "To reserve and commit pages in one step, call VirtualAlloc with
> The function fails if you attempt to commit a page that has not been
> reserved. The resulting error code is ERROR_INVALID_ADDRESS."

You are right. My main objection was that NtAllocateVirtualMemory rounds
passed in base address to a 64k boundary in the MEM_RESERVED case and to
page boundary for MEM_COMMIT one, but since (almost) all the cases in my
patch use NULL as a requested base address that doesn't really matter.


More information about the wine-devel mailing list