mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-06 06:40:38 +00:00
advapi32: Pass service name as argv[0] to ServiceMain.
This commit is contained in:
parent
d0244d761d
commit
52363aef65
|
@ -430,8 +430,7 @@ static DWORD WINAPI service_control_dispatcher(LPVOID arg)
|
||||||
!(service->full_access_handle = OpenServiceW( manager, data, GENERIC_READ|GENERIC_WRITE )))
|
!(service->full_access_handle = OpenServiceW( manager, data, GENERIC_READ|GENERIC_WRITE )))
|
||||||
FIXME( "failed to open service %s\n", debugstr_w(data) );
|
FIXME( "failed to open service %s\n", debugstr_w(data) );
|
||||||
}
|
}
|
||||||
result = service_handle_start(service, data + info.name_size,
|
result = service_handle_start(service, data, data_size / sizeof(WCHAR));
|
||||||
data_size / sizeof(WCHAR) - info.name_size );
|
|
||||||
break;
|
break;
|
||||||
case WINESERV_SENDCONTROL:
|
case WINESERV_SENDCONTROL:
|
||||||
result = service_handle_control(service, info.control);
|
result = service_handle_control(service, info.control);
|
||||||
|
|
|
@ -299,11 +299,8 @@ static void scmdatabase_autostart_services(struct scmdatabase *db)
|
||||||
for (i = 0; i < size; i++)
|
for (i = 0; i < size; i++)
|
||||||
{
|
{
|
||||||
DWORD err;
|
DWORD err;
|
||||||
const WCHAR *argv[2];
|
|
||||||
service = services_list[i];
|
service = services_list[i];
|
||||||
argv[0] = service->name;
|
err = service_start(service, 0, NULL);
|
||||||
argv[1] = NULL;
|
|
||||||
err = service_start(service, 1, argv);
|
|
||||||
if (err != ERROR_SUCCESS)
|
if (err != ERROR_SUCCESS)
|
||||||
WINE_FIXME("Auto-start service %s failed to start: %d\n",
|
WINE_FIXME("Auto-start service %s failed to start: %d\n",
|
||||||
wine_dbgstr_w(service->name), err);
|
wine_dbgstr_w(service->name), err);
|
||||||
|
|
|
@ -94,6 +94,10 @@ static void WINAPI service_main(DWORD argc, char **argv)
|
||||||
SERVICE_STATUS status;
|
SERVICE_STATUS status;
|
||||||
BOOL res;
|
BOOL res;
|
||||||
|
|
||||||
|
service_ok(argc == 1, "argc = %d", argc);
|
||||||
|
if(argc)
|
||||||
|
service_ok(!strcmp(argv[0], service_name), "argv[0] = %s, expected %s", argv[0], service_name);
|
||||||
|
|
||||||
service_handle = pRegisterServiceCtrlHandlerExA(service_name, service_handler, NULL);
|
service_handle = pRegisterServiceCtrlHandlerExA(service_name, service_handler, NULL);
|
||||||
service_ok(service_handle != NULL, "RegisterServiceCtrlHandlerEx failed: %u\n", GetLastError());
|
service_ok(service_handle != NULL, "RegisterServiceCtrlHandlerEx failed: %u\n", GetLastError());
|
||||||
if(!service_handle)
|
if(!service_handle)
|
||||||
|
|
Loading…
Reference in a new issue