Robert Shearman rob@codeweavers.com writes:
+handle_t __RPC_USER MACHINE_HANDLEW_bind(MACHINE_HANDLEW MachineName) +{
- WCHAR transport[] = SVCCTL_TRANSPORT;
- WCHAR endpoint[] = SVCCTL_ENDPOINT;
- LPWSTR server_copy = NULL;
- RPC_WSTR binding_str;
- RPC_STATUS status;
- handle_t rpc_handle;
- /* unlike Windows we start services.exe on demand. We start it always as
* checking if this is our address can be tricky */
- if (!check_services_exe())
return NULL;
I think it would be OK to assume that services.exe is started by wineboot and is always running, since we'll have at least the mountmgr service running all the time.
+/* Not the Windows event name - if needed the true one can be found in Inside Windows */ +cpp_quote("#define SVCCTL_STARTED_EVENT (const WCHAR[]){'_','_','w','i','n','e','_','S','v','c','c','t','l','S','t','a','r','t','e','d',0}")
That's gcc-specific syntax, it would need some #ifdefs.
Alexandre Julliard wrote:
Robert Shearman rob@codeweavers.com writes:
+handle_t __RPC_USER MACHINE_HANDLEW_bind(MACHINE_HANDLEW MachineName) +{
- WCHAR transport[] = SVCCTL_TRANSPORT;
- WCHAR endpoint[] = SVCCTL_ENDPOINT;
- LPWSTR server_copy = NULL;
- RPC_WSTR binding_str;
- RPC_STATUS status;
- handle_t rpc_handle;
- /* unlike Windows we start services.exe on demand. We start it always as
* checking if this is our address can be tricky */
- if (!check_services_exe())
return NULL;
I think it would be OK to assume that services.exe is started by wineboot and is always running, since we'll have at least the mountmgr service running all the time.
I'm not sure that is a valid assumption, as we could have an option to disable wineboot in the future due to performance reasons.
+/* Not the Windows event name - if needed the true one can be found in Inside Windows */ +cpp_quote("#define SVCCTL_STARTED_EVENT (const WCHAR[]){'_','_','w','i','n','e','_','S','v','c','c','t','l','S','t','a','r','t','e','d',0}")
That's gcc-specific syntax, it would need some #ifdefs.
Well spotted. I'll fix that.
Robert Shearman rob@codeweavers.com writes:
I'm not sure that is a valid assumption, as we could have an option to disable wineboot in the future due to performance reasons.
I don't think we want to support that. On the contrary, we want to move more of the startup processing that we currently do for every process into wineboot, so that it is done only once per session. This requires that we can guarantee that wineboot is always executed.
We may of course make some of the more expensive parts of wineboot optional, but starting services.exe shouldn't be in the expensive category (and if it is that should be fixed).