[2/3] kernel32/heap: Fix some hacks in GlobalMemoryStatus(). (try 2)
amartinson at codeweavers.com
Fri Jun 3 15:19:18 CDT 2011
On 06/03/2011 02:36 PM, Dmitry Timoshkov wrote:
> Adam Martinson<amartinson at codeweavers.com> wrote:
>>>> The issue is that Dragon NaturallySpeaking 7 setup doesn't have the
>>>> IMAGE_FILE_LARGE_ADDRESS_AWARE flag set, but it uses InstallShield 6 as
>>>> a child process, which does have it set. IS6 calls GlobalMemoryStatus()
>>>> and passes the data back to DNS7 setup, and if you have more than 2GB
>>>> RAM DNS7 setup thinks you have negative memory. Windows figures this
>>>> out and rounds to 2GB, Wine does not.
>>> I'd suggest to write some tests and try to understand what does Windows
>>> and at which step.
>> I don't know of any way to do this with the current testing framework,
>> and I think the apps that require it (DNS7 is the only one I know of)
>> give us a clear enough picture. If there are other apps that need
>> specific things out of this kind of behavior then I'll try to figure out
>> some way to incorporate it in the tests.
> Start with writing a simple Windows app that replicates what DNS/IS6 are
Alright, I'll see what I can come up with over the weekend.
>> Ah, I thought you were talking about
>> <http://msdn.microsoft.com/en-us/library/aa366912%28v=vs.85%29.aspx>, so
>> I was trying to figure out how to exclude system processes if it was
>> called by an app process, etc, which seems like a reasonable thing to
>> do. Attached is a version which should appropriately limit the scope.
> You don't understand, it doesn't matter what DLLs are loaded in other
> processes, that shouldn't have any influence on address space limitations
> in current process.
No, I mean the process tree was something like wine-preloader -> DNS7
setup -> IS6. No point in checking system processes here, tho I think
all of Wine's binaries set IMAGE_FILE_LARGE_ADDRESS_AWARE. What you're
saying is correct, but we're talking about different things.
More information about the wine-devel