[prev in list] [next in list] [prev in thread] [next in thread]
List: wine-devel
Subject: Re: more TEB problems
From: "Juergen Schmied" <juergen.schmied () debitel ! net>
Date: 1999-12-30 19:13:51
[Download RAW message or body]
I looked a bit deeper (its easy to find since you have only to look
for the sequence 64 A1 18 00 00 00) in it and discovered some
more TEB-uses:
----------
void * ClientId.UniqueThread; /* 0x24 */
--> win95: Thread ID (might be the same)
struct _PEB * ProcessEnvironmentBlock; /* 0x30 */
--> (really often used!) defined as PDB, with a comment relating to
NT3.51 so I think here are the win95 and NT structures mixed
already and the nt structure is in place. How is this used within
win95?
unsigned long CurrentLocale; /* 0xC4 */
--> collision with TLS-Array
these are only a few...
-----------
I don't think its a goot idea to mix the win95 and the nt teb. We will
end up with a mess where nobody knows what is what and which
field is nt, win95 or wine related.
IMHO a better solution is to use a union of the 3 (win95/nt/wine)
tebs and accessing fields with eg. teb->win95.fieldname. This
would allow also to adjust the order of fields (later, if we really need
it) more easily with:
#define schema_used win95
teb->schema_used.filedname
as example the tls-array could be moved out of the way with this
solution since it occupates quite a few fields used by nt.
> I see no problem with adding all the NT fields that don't conflict
> with the Win95 ones. This should solve most of the problems, as
there
> are only few fields that we use that are actually in conflict.
This might be not enough in the long run. If we'd like to run things
like the native user32.dll we can't get along without a compile time
decision about the teb layout.
The alternative would be to say: forget to run something below a
comctl32.dll and would rule out as example the nt-ole-stuff and
advapi32.dll (everything what uses rpcrt4.dll) since it produces
unpredictable side effects.
Bye
Juergen
---
juergen.schmied@debitel.net
... from sunny Berlin
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic