Process elevation

Luke Benstead kazade at gmail.com
Mon Mar 9 10:44:31 CDT 2009


Hi all,

I was going to post this to #winehackers but it became too long so
I'll post here instead :)

When trying to run IE8 under Wine, you are greeted with the following error:

err:ntdll:NtQueryInformationToken Unhandled Token Information class 18!

In the TOKEN_INFORMATION_CLASS enum, 18 refers to TokenElevationType.
The error occurs in NtQueryInformationToken which *should* set the
value of a TOKEN_ELEVATION_TYPE (
http://msdn.microsoft.com/en-us/library/bb530718(VS.85).aspx )
instance. This basically returns whether or not a user is elevated, or
can be elevated.

I was going to have a go at fixing it, but I'm not sure what is the
best value to set. Should Wine class a user as an admin and all
processes run elevated? If so, then some applications may refuse to
run as admin, and definitely the same is true that if the user isn't
elevated, so programs will not run.

I don't really know much about this elevation stuff (aside what I've
read in the last half an hour) but I can't seem to work out what value
NtQueryInformationToken should return out of:

TokenElevationTypeDefault  - User is a normal user and can't elevate
TokenElevationTypeFull - User can and is elevated
TokenElevationTypeLimited  - User can elevate, but isn't currently elevated

Should perhaps the elevation level be set by an environment variable,
or registry setting?

Luke.



More information about the wine-devel mailing list