1
0
mirror of https://github.com/veracrypt/VeraCrypt.git synced 2025-11-11 11:08:02 -06:00

Windows Installer: better handling for updating system favorite service from 1.0f-2 (solve Windows 10 issue) . Remove extra VeraCrypt files that may remain after uninstalling it.

This commit is contained in:
Mounir IDRASSI
2015-09-06 11:39:47 +02:00
parent adc3274395
commit 42a7a17cb9
3 changed files with 126 additions and 24 deletions

View File

@@ -2017,6 +2017,7 @@ namespace VeraCrypt
{
SC_HANDLE scm = OpenSCManager (NULL, NULL, SC_MANAGER_ALL_ACCESS);
throw_sys_if (!scm);
finally_do_arg (SC_HANDLE, scm, { CloseServiceHandle (finally_arg); });
string servicePath = GetServiceConfigPath (TC_APP_NAME ".exe", false);
string serviceLegacyPath = GetServiceConfigPath (TC_APP_NAME ".exe", true);
@@ -2099,6 +2100,39 @@ namespace VeraCrypt
}
}
void BootEncryption::UpdateSystemFavoritesService ()
{
SC_HANDLE scm = OpenSCManager (NULL, NULL, SC_MANAGER_ALL_ACCESS);
throw_sys_if (!scm);
finally_do_arg (SC_HANDLE, scm, { CloseServiceHandle (finally_arg); });
string servicePath = GetServiceConfigPath (TC_APP_NAME ".exe", false);
// check if service exists
SC_HANDLE service = OpenService (scm, TC_SYSTEM_FAVORITES_SERVICE_NAME, SERVICE_ALL_ACCESS);
if (service)
{
// ensure that its parameters are correct
throw_sys_if (!ChangeServiceConfig (service,
SERVICE_WIN32_OWN_PROCESS,
SERVICE_AUTO_START,
SERVICE_ERROR_NORMAL,
(string ("\"") + servicePath + "\" " TC_SYSTEM_FAVORITES_SERVICE_CMDLINE_OPTION).c_str(),
TC_SYSTEM_FAVORITES_SERVICE_LOAD_ORDER_GROUP,
NULL,
NULL,
NULL,
NULL,
TC_APP_NAME " System Favorites"));
}
else
{
RegisterSystemFavoritesService (TRUE, TRUE);
}
}
void BootEncryption::SetDriverConfigurationFlag (uint32 flag, bool state)
{
DWORD configMap = ReadDriverConfigurationFlags();