From: Sven Baars sbaars@codeweavers.com
The server always returns the same key now anyway. --- dlls/kernelbase/registry.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/dlls/kernelbase/registry.c b/dlls/kernelbase/registry.c index a0cd2be33ea..4f9d83f423d 100644 --- a/dlls/kernelbase/registry.c +++ b/dlls/kernelbase/registry.c @@ -204,7 +204,7 @@ static HKEY create_special_root_hkey( HKEY hkey, DWORD access ) TRACE( "%s -> %p\n", debugstr_w(attr.ObjectName->Buffer), hkey ); }
- if (!cache_disabled[idx] && !(access & (KEY_WOW64_64KEY | KEY_WOW64_32KEY))) + if (!cache_disabled[idx]) { if (!(ret = InterlockedCompareExchangePointer( (void **)&special_root_keys[idx], hkey, 0 ))) ret = hkey; @@ -220,15 +220,10 @@ static HKEY create_special_root_hkey( HKEY hkey, DWORD access ) static inline HKEY get_special_root_hkey( HKEY hkey, REGSAM access ) { unsigned int index = HandleToUlong(hkey) - HandleToUlong(HKEY_SPECIAL_ROOT_FIRST); - DWORD wow64_flags = access & (KEY_WOW64_32KEY | KEY_WOW64_64KEY);
switch (HandleToUlong(hkey)) { case (LONG)(LONG_PTR)HKEY_CLASSES_ROOT: - if (wow64_flags) - return create_special_root_hkey( hkey, MAXIMUM_ALLOWED | wow64_flags ); - /* fall through */ - case (LONG)(LONG_PTR)HKEY_CURRENT_USER: case (LONG)(LONG_PTR)HKEY_LOCAL_MACHINE: case (LONG)(LONG_PTR)HKEY_USERS: