Re: [PATCH 3/7] services: Start a local RPC server.

2008-03-28 Thread Alexandre Julliard
Robert Shearman [EMAIL PROTECTED] 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
[EMAIL PROTECTED]




Re: [PATCH 3/7] services: Start a local RPC server.

2008-03-28 Thread Robert Shearman
Alexandre Julliard wrote:
 Robert Shearman [EMAIL PROTECTED] 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.

-- 
Rob Shearman





Re: [PATCH 3/7] services: Start a local RPC server.

2008-03-28 Thread Alexandre Julliard
Robert Shearman [EMAIL PROTECTED] 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).

-- 
Alexandre Julliard
[EMAIL PROTECTED]