dlls/userenv: fixed stubs GetUserProfileDirectoryW/A (7)
Andreas Rosenberg
andreas.rosenberg at apis.de
Tue Mar 10 05:17:30 CDT 2009
Vitaliy Margolen wrote:
>> + res = RegOpenKeyExW( HKEY_LOCAL_MACHINE, profile_pathname, 0L,
>> KEY_QUERY_VALUE, &keyProfileDir );
>> + res = RegGetValueW( keyProfileDir, profile_subkey,
>> profile_keyname, RRF_RT_ANY,
>> + NULL, buffer, &sizePath ); /* RegGetValue
>> expects pcbData in bytes */
>
> You opening the wrong key and querying the wrong value. You should be
> opening "Software\\Microsoft\\Windows NT\\CurrentVersion\\ProfileList" key
> and getting the value of "ProfilesDirectory" entry.
Don't see, why this should be wrong. RegKeyGetValue allows to specify a
subkey, for a previously opened key and query a value there. My current
implementation returned the correct path (imho).
But I can change this.
> Now about those fixed size buffers in GetUserProfileDirectoryW(). Why
> can't you use the passed in buffer instead?
I changed it already. Maybe I was overcautious already modifying argument
buffers, if subsequent calls may still fail.
>
> And the last thing - token. Look at _GetUserSidStringFromToken() from
> shell32/shellpath.c how to get the user from the token.
>
I looked at it. But I did not get a final clue what are going to tell me by
referring to this.
- should I replace GetUserName() by a user information retrieved from
the token?
- should I check user access rights to the registry key vs. the access
privileges from the token?
More information about the wine-devel
mailing list