Virtual Pages difference - Spotted with VirtualQuery()

Massimo max at veneto.com
Thu Jul 18 12:10:08 CDT 2002


Posted in bugzilla, I'll add the executable later on, and the patch... But it's not a 
solution, it's only make app believing the page has a different protection flag, 
doesn't correct the protection itself.... Should cause errors elsewhere.

Date sent:      	Wed, 17 Jul 2002 19:45:36 -0600
From:           	Tony Lambregts <tony_lambregts at telusplanet.net>
To:             	max at veneto.com
Copies to:      	wine-devel at winehq.com
Subject:        	Re: Virtual Pages difference - Spotted with VirtualQuery()

> Max wrote:
> 
> >As usual, AutoCAD seems to be a good test-bench for wine :-)
> >I spotted the problem that seemed coming from VirtualQuety function, but
> >that is (I guess... hmmmm) more a problem of memory handling in wine.
> >
> >I made a little test app; here the results in wine and win2k, later on
> >the app itself :
> >
> >WINE RESULTS :
> >
> >Memory info about '004012F0' :
> >    Base Address		: 00401000
> >    Allocation Base	: 00400000
> >    Allocation Protect	: PAGE_READONLY | PAGE_WRITECOPY | 		
> >				  PAGE_EXECUTE_READWRITE | PAGE_NOACCESS
> >    Region Size		: 00017000
> >    State			: MEM_COMMIT
> >    Protect			: PAGE_WRITECOPY      <----- HERE
> >    Type			: MEM_PRIVATE
> >
> >WIN2k RESULTS :
> >
> >Memory info about '004012F0' :
> >    Base Address		: 00401000
> >    Allocation Base	: 00400000
> >    Allocation Protect	: PAGE_EXECUTE_WRITECOPY
> >    Region Size		: 00001000
> >    State			: MEM_COMMIT
> >    Protect			: PAGE_EXECUTE_READ    <---- AND HERE
> >    Type			: MEM_IMAGE
> >
> >Well, dunno too much about Type field, I didn't find an app that check it yet;
> >I did find the app that uses Protect flag; I think it's poor coded, but as 
> >usual we should make bad apps work too :-)
> >The app put some data in code page, not yet spotted if hard or soft-coded,
> >then before reading it checks Protect field to see if it has not set the 
> >PAGE_GUARD, NO_ACCESS and WRITECOPY flags; if t has, it hangs some 10.000 
> >lines later (sigh....)
> >I think wine should set Protect flag quite as like as possible as windoze
> >
> >For AutoCAD2000 I put a dirty hack in process.c, but is really ugly; i'd 
> >prefer not to put my hands (bytes ?) too deeply inside some code that I don't 
> >understand completely... 
> >
> >Attached is the test source (compiled in Borland CBuilder, but should work 
> >with any compiler, apart some unuseful pragma's).
> >If needed I can post the compiled too :-)
> >
> >Regards
> >
> >Max
> >  
> >
> This is an excellent bug report but even if someone starts working on it 
> right away it would be nice to have this stuff in bugzilla. That 
> includes the exe and your (maybe not-so) ugly hack.
> 
> 
> Tony Lambregts
> 
> 





More information about the wine-devel mailing list