Hi,
I tried to use VirtualAlloc with MEM_COMMIT to map a page at address 0x7ffe0000. The call to VirtualAlloc failed with ERROR_INVALID_ADDRESS. I then tried to reserve the pages first, using VirtualAlloc with MEM_RESERVE, and the call to VirtualAlloc/MEM_COMMIT worked fined after that.
The MSDN state that "(MEM_COMMIT) If a memory page is not yet reserved, setting this value causes the function to both reserve and commit the memory page.".
Is that a wine bug ? I can try to fix it, but I'm scared to break something in VirtualAlloc, as I'm new to wine internals.
Laurent Pinchart
I tried to use VirtualAlloc with MEM_COMMIT to map a page at address 0x7ffe0000. The call to VirtualAlloc failed with ERROR_INVALID_ADDRESS. I then tried to reserve the pages first, using VirtualAlloc with MEM_RESERVE, and the call to VirtualAlloc/MEM_COMMIT worked fined after that.
The MSDN state that "(MEM_COMMIT) If a memory page is not yet reserved, setting this value causes the function to both reserve and commit the memory page.".
this has changed recently. my local information (2K, 95 and NT 3/4 help, and not XP as on line) doesn't state this
most (old) MSDN code about VirtualAlloc use the form ptr = VirtualAlloc(<addr>, <size>, MEM_RESERVE|MEM_COMMIT, PAGE_READWRITE);
and not the only MEM_COMMIT
we should investigate a bit more this point for the VirtualAlloc implementation as of today, use the MEM_RESERVE|MEM_COMMIT form, it'll be just fine
A+