From: Zhiyi Zhang Subject: Re: [PATCH] explorer: Create CurrentControlSet\Control\Video registry key as non-volatile. Message-Id: <392bb0bd-4f47-49e4-f14b-ed216e7d558d@codeweavers.com> Date: Wed, 17 Apr 2019 18:38:08 +0800 In-Reply-To: <20190417085800.2306-1-infyquest@gmail.com> References: <20190417085800.2306-1-infyquest@gmail.com> I think it's better to add this key in wine.inf On 4/17/19 4:58 PM, Vijay Kiran Kamuju wrote: > From: Michael Müller > > From: Michael Müller > Signed-off-by: Michael Müller > Signed-off-by: Vijay Kiran Kamuju > --- > dlls/advapi32/tests/registry.c | 7 +++++++ > programs/explorer/desktop.c | 9 +++++++++ > 2 files changed, 16 insertions(+) > > diff --git a/dlls/advapi32/tests/registry.c b/dlls/advapi32/tests/registry.c > index d1fe3f05fe5..011c2fcea1c 100644 > --- a/dlls/advapi32/tests/registry.c > +++ b/dlls/advapi32/tests/registry.c > @@ -1345,6 +1345,13 @@ static void test_reg_create_key(void) > RegDeleteKeyA(hkey1, ""); > RegCloseKey(hkey1); > > + /* System\CurrentControlSet\Control\Video should be non-volatile */ > + ret = RegCreateKeyExA(HKEY_LOCAL_MACHINE, "System\\CurrentControlSet\\Control\\Video\\Wine", > + 0, NULL, 0, KEY_NOTIFY, NULL, &hkey1, NULL); > + ok(ret == ERROR_SUCCESS, "RegCreateKeyExA failed with error %d\n", ret); > + RegDeleteKeyA(hkey1, ""); > + RegCloseKey(hkey1); > + > /* WOW64 flags - open an existing key */ > hkey1 = NULL; > ret = RegCreateKeyExA(HKEY_LOCAL_MACHINE, "Software", 0, NULL, 0, KEY_READ|KEY_WOW64_32KEY, NULL, &hkey1, NULL); > diff --git a/programs/explorer/desktop.c b/programs/explorer/desktop.c > index 27b9b249012..5424a194029 100644 > --- a/programs/explorer/desktop.c > +++ b/programs/explorer/desktop.c > @@ -775,6 +775,11 @@ static BOOL get_default_enable_shell( const WCHAR *name ) > > static HMODULE load_graphics_driver( const WCHAR *driver, const GUID *guid ) > { > + static const WCHAR video_keyW[] = { > + 'S','y','s','t','e','m','\\', > + 'C','u','r','r','e','n','t','C','o','n','t','r','o','l','S','e','t','\\', > + 'C','o','n','t','r','o','l','\\', > + 'V','i','d','e','o',0}; > static const WCHAR device_keyW[] = { > 'S','y','s','t','e','m','\\', > 'C','u','r','r','e','n','t','C','o','n','t','r','o','l','S','e','t','\\', > @@ -838,6 +843,10 @@ static HMODULE load_graphics_driver( const WCHAR *driver, const GUID *guid ) > TRACE( "display %s driver %s\n", debugstr_guid(guid), debugstr_w(buffer) ); > } > > + /* create video key first without REG_OPTION_VOLATILE attribute */ > + if (!RegCreateKeyExW( HKEY_LOCAL_MACHINE, video_keyW, 0, NULL, 0, KEY_SET_VALUE, NULL, &hkey, NULL )) > + RegCloseKey( hkey ); > + > sprintfW( key, device_keyW, guid->Data1, guid->Data2, guid->Data3, > guid->Data4[0], guid->Data4[1], guid->Data4[2], guid->Data4[3], > guid->Data4[4], guid->Data4[5], guid->Data4[6], guid->Data4[7] );