Home | Info | Community | Development | myReactOS | Contact Us
Definition at line 27 of file groupdb.c.
Referenced by CreateServiceListEntry(), RChangeServiceConfigA(), RChangeServiceConfigW(), and RCreateServiceW().
{ PLIST_ENTRY GroupEntry; PSERVICE_GROUP lpGroup; DPRINT("ScmSetServiceGroup(%S)\n", lpGroupName); if (lpService->lpGroup != NULL) { lpService->lpGroup->dwRefCount--; /* FIXME: What do we have to do when dwRefCount is 0? */ } GroupEntry = GroupListHead.Flink; while (GroupEntry != &GroupListHead) { lpGroup = CONTAINING_RECORD(GroupEntry, SERVICE_GROUP, GroupListEntry); if (!_wcsicmp(lpGroup->lpGroupName, lpGroupName)) { lpService->lpGroup = lpGroup; return ERROR_SUCCESS; } GroupEntry = GroupEntry->Flink; } GroupEntry = UnknownGroupListHead.Flink; while (GroupEntry != &UnknownGroupListHead) { lpGroup = CONTAINING_RECORD(GroupEntry, SERVICE_GROUP, GroupListEntry); if (!_wcsicmp(lpGroup->lpGroupName, lpGroupName)) { lpGroup->dwRefCount++; lpService->lpGroup = lpGroup; return ERROR_SUCCESS; } GroupEntry = GroupEntry->Flink; } lpGroup = (PSERVICE_GROUP)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(SERVICE_GROUP) + ((wcslen(lpGroupName) + 1)* sizeof(WCHAR))); if (lpGroup == NULL) return ERROR_NOT_ENOUGH_MEMORY; wcscpy(lpGroup->szGroupName, lpGroupName); lpGroup->lpGroupName = lpGroup->szGroupName; lpGroup->dwRefCount = 1; lpService->lpGroup = lpGroup; InsertTailList(&UnknownGroupListHead, &lpGroup->GroupListEntry); return ERROR_SUCCESS; }