On Sat, Mar 25, 2000 at 09:20:41PM +0100, Andreas Mohr wrote:
> Call ADVAPI32.208: RegCreateKeyExA(000000e0,42299aa8 "multiDesk
>v2.1b_is1",00000000,00000000,00000000,00000002,00000000,4186fb98,4186fb94)
>ret=417469c9 fs=02cf
> trace:reg:RegCreateKeyExA (0xe0,"multiDesk
>v2.1b_is1",0,(null),0,2,(nil),0x4186fb98,0x4186fb94)
> Ret ADVAPI32.208: RegCreateKeyExA() retval=00000005 ret=417469c9 fs=02cf
> ^^^^^^^^ ERROR_ACCESS_DENIED !
[...]
> Call USER32.391: MessageBoxA(00000130,4229967c "Error creating registry key:
>Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall"...,42299a64
>"Setup",00000010) ret=41733223 fs=02cf
>
> This seems to happen because in dlls/advapi32/registry.c/RegCreateKeyExA:
> if (!(access & KEY_ALL_ACCESS) || (access & ~KEY_ALL_ACCESS)) return
>ERROR_ACCESS_DENIED;
No, this is NOT the problem.
The server rejects the create key call.
This is because the program does:
Call KERNEL32.427: GetVersion() ret=417468fc fs=02cf
Ret KERNEL32.427: GetVersion() retval=c0000004 ret=417468fc fs=02cf
^^^^^^^^ if this is NT351,
the registry things won't get called ! (hey, AFAIR MSDN tells us
about a 3.51 RegCreateKeyExA bug...)
Call ADVAPI32.208: RegCreateKeyExA(80000002,41746ba4
"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall",00000000,00000000,00000000,00000001,00000000,4186fb9c,4186fb94)
ret=4174692b fs=02cf
trace:reg:RegCreateKeyExA
(0x80000002,"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall",0,(null),0,1,(nil),0x4186fb9c,0x4186fb94)
Ret ADVAPI32.208: RegCreateKeyExA() retval=00000000 ret=4174692b fs=02cf
oh, we just created a key with access == KEY_QUERY_VALUE.
Call ADVAPI32.227: RegOpenKeyExA(000000e0,42299b40 "multiDesk
v2.1b_is1",00000000,00000001,4186fb98) ret=41746986 fs=02cf
trace:reg:RegOpenKeyExA (0xe0,"multiDesk v2.1b_is1",0,1,0x4186fb98)
trace:ntdll:RtlNtStatusToDosError (c0000034);
Ret ADVAPI32.227: RegOpenKeyExA() retval=00000002 ret=41746986 fs=02cf
^^^^^^^^ ok, not found -> create
Call ADVAPI32.208: RegCreateKeyExA(000000e0,42299b40 "multiDesk
v2.1b_is1",00000000,00000000,00000000,00000002,00000000,4186fb98,4186fb94)
ret=417469c9 fs=02cf
trace:reg:RegCreateKeyExA (0xe0,"multiDesk
v2.1b_is1",0,(null),0,2,(nil),0x4186fb98,0x4186fb94)
create key
trace:ntdll:RtlNtStatusToDosError (c0000022);
Ret ADVAPI32.208: RegCreateKeyExA() retval=00000005 ret=417469c9 fs=02cf
^^^^^^^^ access denied
This is because we try to create a key within the key 0xe0, which has
KEY_QUERY_VALUE access only. As this seems to indicate that we can't create
further keys within key 0xe0, this Wine behaviour *seems* to be normal and
thus it should fail on NT, too.
HOWEVER: This program is stated as being NT compatible.
(winfiles.cnet.com/apps/98/desktop-virtual.html)
Could somebody please test this program on NT and report that ?
(www.techsuperior.com/products/multiDesk21b.exe)
(given the fact that they even disable registry access on NT 3.51, the
program ought to be healthy and Wine should be the buggy one...)
Or maybe somebody (Juergen ?) could write a test program doing exactly
the same registry access as multiDesk and run this on NT ?
Thanks !
Andreas Mohr