From 07f6793bd25c7f2eab49292d36b2b64f86dfbf2a Mon Sep 17 00:00:00 2001 From: Mounir IDRASSI Date: Mon, 14 Jan 2019 01:01:00 +0100 Subject: Windows: enhance support of new behavior of favorite service which is now always running in case of system encryption --- src/Common/BootEncryption.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'src/Common') diff --git a/src/Common/BootEncryption.cpp b/src/Common/BootEncryption.cpp index 364f0869..9f065615 100644 --- a/src/Common/BootEncryption.cpp +++ b/src/Common/BootEncryption.cpp @@ -4599,8 +4599,6 @@ namespace VeraCrypt { WriteLocalMachineRegistryString (L"SYSTEM\\CurrentControlSet\\Control\\SafeBoot\\Minimal\\" TC_SYSTEM_FAVORITES_SERVICE_NAME, NULL, L"Service", FALSE); WriteLocalMachineRegistryString (L"SYSTEM\\CurrentControlSet\\Control\\SafeBoot\\Network\\" TC_SYSTEM_FAVORITES_SERVICE_NAME, NULL, L"Service", FALSE); - - SetDriverConfigurationFlag (TC_DRIVER_CONFIG_CACHE_BOOT_PASSWORD_FOR_SYS_FAVORITES, true); } catch (...) { @@ -4615,14 +4613,15 @@ namespace VeraCrypt } else { - SetDriverConfigurationFlag (TC_DRIVER_CONFIG_CACHE_BOOT_PASSWORD_FOR_SYS_FAVORITES, false); - DeleteLocalMachineRegistryKey (L"SYSTEM\\CurrentControlSet\\Control\\SafeBoot\\Minimal", TC_SYSTEM_FAVORITES_SERVICE_NAME); DeleteLocalMachineRegistryKey (L"SYSTEM\\CurrentControlSet\\Control\\SafeBoot\\Network", TC_SYSTEM_FAVORITES_SERVICE_NAME); SC_HANDLE service = OpenService (scm, TC_SYSTEM_FAVORITES_SERVICE_NAME, SERVICE_ALL_ACCESS); throw_sys_if (!service); + SERVICE_STATUS serviceStatus = {0}; + ControlService (service, SERVICE_CONTROL_STOP, &serviceStatus); + throw_sys_if (!DeleteService (service)); CloseServiceHandle (service); @@ -4940,7 +4939,7 @@ namespace VeraCrypt try { - RegisterSystemFavoritesService (false); + RegisterSystemFavoritesService (FALSE); } catch (...) { } @@ -5168,6 +5167,8 @@ namespace VeraCrypt InstallVolumeHeader (); RegisterBootDriver (hiddenSystem); + + RegisterSystemFavoritesService (TRUE); } catch (Exception &) { -- cgit v1.2.3