[PATCH 0/1] MR6494: services: Add support for ChangeServiceConfig2(SERVICE_CONFIG_DELAYED_AUTO_START_INFO).
From: Dmitry Timoshkov <dmitry(a)baikal.ru> Signed-off-by: Dmitry Timoshkov <dmitry(a)baikal.ru> --- programs/services/rpc.c | 8 ++++++++ programs/services/services.c | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/programs/services/rpc.c b/programs/services/rpc.c index 835516861f0..d725c6510b4 100644 --- a/programs/services/rpc.c +++ b/programs/services/rpc.c @@ -975,6 +975,14 @@ DWORD __cdecl svcctl_ChangeServiceConfig2W( SC_RPC_HANDLE hService, SC_RPC_CONFI save_service_config( service->service_entry ); service_unlock( service->service_entry ); break; + case SERVICE_CONFIG_DELAYED_AUTO_START_INFO: + WINE_TRACE( "SERVICE_CONFIG_DELAYED_AUTO_START_INFO not implemented: fDelayedAutostart %d\n", + config.delayedstart->fDelayedAutostart); + service_lock( service->service_entry ); + service->service_entry->delayed_autostart = config.delayedstart->fDelayedAutostart; + save_service_config( service->service_entry ); + service_unlock( service->service_entry ); + break; default: WINE_FIXME("level %lu not implemented\n", config.dwInfoLevel); err = ERROR_INVALID_LEVEL; diff --git a/programs/services/services.c b/programs/services/services.c index 273a146c784..9636752438e 100644 --- a/programs/services/services.c +++ b/programs/services/services.c @@ -275,6 +275,14 @@ DWORD save_service_config(struct service_entry *entry) goto cleanup; if ((err = RegSetValueExW(hKey, SZ_PRESHUTDOWN, 0, REG_DWORD, (LPBYTE)&entry->preshutdown_timeout, sizeof(DWORD))) != 0) goto cleanup; + + if (entry->delayed_autostart) + err = RegSetValueExW(hKey, SZ_DELAYED_AUTOSTART, 0, REG_DWORD, (LPBYTE)&entry->delayed_autostart, sizeof(DWORD)); + else + err = RegDeleteValueW(hKey, SZ_DELAYED_AUTOSTART); + if (err != 0 && err != ERROR_FILE_NOT_FOUND) + goto cleanup; + if (entry->is_wow64) { const DWORD is_wow64 = 1; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/6494
Hi, It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated. The tests also ran into some preexisting test failures. If you know how to fix them that would be helpful. See the TestBot job for the details: The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=148436 Your paranoid android. === debian11b (64 bit WoW report) === user32: input.c:4305: Test succeeded inside todo block: button_down_hwnd_todo 1: got MSG_TEST_WIN hwnd 00000000015400F2, msg WM_LBUTTONDOWN, wparam 0x1, lparam 0x320032
Aida Jonikienė (@DodoGTA) commented about programs/services/rpc.c:
save_service_config( service->service_entry ); service_unlock( service->service_entry ); break; + case SERVICE_CONFIG_DELAYED_AUTO_START_INFO: + WINE_TRACE( "SERVICE_CONFIG_DELAYED_AUTO_START_INFO not implemented: fDelayedAutostart %d\n",
I'm not sure why the not implemented message has a TRACE level -- https://gitlab.winehq.org/wine/wine/-/merge_requests/6494#note_82228
Also a small test for this function call would be nice (SERVICE_CONFIG_PRESHUTDOWN_INFO already has them) -- https://gitlab.winehq.org/wine/wine/-/merge_requests/6494#note_82229
On Sun Sep 15 13:31:32 2024 +0000, Aida Jonikienė wrote:
I'm not sure why the not implemented message has a TRACE level "not implemented" part is there because initiallly it was added as a stub. Thanks for spotting that.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/6494#note_82233
On Sun Sep 15 16:59:49 2024 +0000, Aida Jonikienė wrote:
Also a small test for this function call would be nice (SERVICE_CONFIG_PRESHUTDOWN_INFO already has them) That's a valid request, thanks.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/6494#note_82234
participants (4)
-
Aida Jonikienė -
Dmitry Timoshkov -
Dmitry Timoshkov (@dmitry) -
Marvin