mirror of
https://github.com/reactos/reactos.git
synced 2025-06-23 05:10:16 +00:00
- Fix crashes in calls to ScmAssignNewTag.
- ScmrCreateServiceW: Assign a group to the service. svn path=/trunk/; revision=20516
This commit is contained in:
parent
77932fa09a
commit
e9f95694e0
1 changed files with 23 additions and 10 deletions
|
@ -220,12 +220,11 @@ ScmCheckAccess(SC_HANDLE Handle,
|
||||||
|
|
||||||
|
|
||||||
DWORD
|
DWORD
|
||||||
ScmAssignNewTag(LPWSTR lpServiceGroup,
|
ScmAssignNewTag(PSERVICE lpService)
|
||||||
LPDWORD lpdwTagId)
|
|
||||||
{
|
{
|
||||||
/* FIXME */
|
/* FIXME */
|
||||||
DPRINT("Assigning new tag in group %S\n", lpServiceGroup);
|
DPRINT("Assigning new tag to service %S\n", lpService->lpServiceName);
|
||||||
*lpdwTagId = 0;
|
lpService->dwTag = 0;
|
||||||
return ERROR_SUCCESS;
|
return ERROR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -927,10 +926,10 @@ ScmrChangeServiceConfigW(handle_t BiningHandle,
|
||||||
|
|
||||||
if (lpdwTagId != NULL)
|
if (lpdwTagId != NULL)
|
||||||
{
|
{
|
||||||
dwError = ScmAssignNewTag(lpService->lpGroup->lpGroupName,
|
dwError = ScmAssignNewTag(lpService);
|
||||||
&lpService->dwTag);
|
|
||||||
if (dwError != ERROR_SUCCESS)
|
if (dwError != ERROR_SUCCESS)
|
||||||
goto done;
|
goto done;
|
||||||
|
|
||||||
dwError = RegSetValueExW(hServiceKey,
|
dwError = RegSetValueExW(hServiceKey,
|
||||||
L"Tag",
|
L"Tag",
|
||||||
0,
|
0,
|
||||||
|
@ -939,6 +938,7 @@ ScmrChangeServiceConfigW(handle_t BiningHandle,
|
||||||
sizeof(DWORD));
|
sizeof(DWORD));
|
||||||
if (dwError != ERROR_SUCCESS)
|
if (dwError != ERROR_SUCCESS)
|
||||||
goto done;
|
goto done;
|
||||||
|
|
||||||
*lpdwTagId = lpService->dwTag;
|
*lpdwTagId = lpService->dwTag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1073,6 +1073,23 @@ ScmrCreateServiceW(handle_t BindingHandle,
|
||||||
wcscpy(lpService->lpDisplayName, lpDisplayName);
|
wcscpy(lpService->lpDisplayName, lpDisplayName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Assign the service to a group */
|
||||||
|
if (lpLoadOrderGroup != NULL && *lpLoadOrderGroup != 0)
|
||||||
|
{
|
||||||
|
dwError = ScmSetServiceGroup(lpService,
|
||||||
|
lpLoadOrderGroup);
|
||||||
|
if (dwError != ERROR_SUCCESS)
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Assign a new tag */
|
||||||
|
if (lpdwTagId != NULL)
|
||||||
|
{
|
||||||
|
dwError = ScmAssignNewTag(lpService);
|
||||||
|
if (dwError != ERROR_SUCCESS)
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
/* Write service data to the registry */
|
/* Write service data to the registry */
|
||||||
/* Create the service key */
|
/* Create the service key */
|
||||||
dwError = ScmCreateServiceKey(lpServiceName,
|
dwError = ScmCreateServiceKey(lpServiceName,
|
||||||
|
@ -1161,10 +1178,6 @@ ScmrCreateServiceW(handle_t BindingHandle,
|
||||||
|
|
||||||
if (lpdwTagId != NULL)
|
if (lpdwTagId != NULL)
|
||||||
{
|
{
|
||||||
dwError = ScmAssignNewTag(lpService->lpGroup->lpGroupName,
|
|
||||||
&lpService->dwTag);
|
|
||||||
if (dwError != ERROR_SUCCESS)
|
|
||||||
goto done;
|
|
||||||
dwError = RegSetValueExW(hServiceKey,
|
dwError = RegSetValueExW(hServiceKey,
|
||||||
L"Tag",
|
L"Tag",
|
||||||
0,
|
0,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue