(*entry)->control_pipe = INVALID_HANDLE_VALUE;
(*entry)->status.dwCurrentState = SERVICE_STOPPED;
(*entry)->status.dwWin32ExitCode = ERROR_SERVICE_NEVER_STARTED;
+ (*entry)->config.dwStartType = (DWORD)-1L;
/* all other fields are zero */
return ERROR_SUCCESS;
}
continue;
}
+ if (entry->config.dwStartType == (DWORD)-1L)
+ {
+ WINE_TRACE("Start type not set for service %s - skipping\n", wine_dbgstr_w(szName));
+ free_service_entry(entry);
+ continue;
+ }
+
if (!validate_service_config(entry))
{
WINE_ERR("Invalid configuration of service %s - skipping\n", wine_dbgstr_w(szName));
DWORD size, type;
DWORD err;
- *output = 0;
+ if (*output != (DWORD)-1L) *output = 0; /* save *output for dwStartType */
size = sizeof(DWORD);
if ((err = RegQueryValueExW(hKey, szValue, 0, &type, (LPBYTE)output, &size)) != 0)
{