mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 15:02:59 +00:00
[SERVICES]
REnumServicesStatusExW/W and RQueryServiceStatusEx should not return a non-zero process ID for a stopped service. svn path=/trunk/; revision=73396
This commit is contained in:
parent
444775e662
commit
183b495907
1 changed files with 16 additions and 4 deletions
|
@ -5871,7 +5871,12 @@ DWORD RQueryServiceStatusEx(
|
||||||
&lpService->Status,
|
&lpService->Status,
|
||||||
sizeof(SERVICE_STATUS));
|
sizeof(SERVICE_STATUS));
|
||||||
|
|
||||||
lpStatus->dwProcessId = (lpService->lpImage != NULL) ? lpService->lpImage->dwProcessId : 0; /* FIXME */
|
/* Copy the service process ID */
|
||||||
|
if ((lpService->Status.dwCurrentState == SERVICE_STOPPED) || (lpService->lpImage != NULL))
|
||||||
|
lpStatus->dwProcessId = 0;
|
||||||
|
else
|
||||||
|
lpStatus->dwProcessId = lpService->lpImage->dwProcessId;
|
||||||
|
|
||||||
lpStatus->dwServiceFlags = 0; /* FIXME */
|
lpStatus->dwServiceFlags = 0; /* FIXME */
|
||||||
|
|
||||||
/* Unlock the service database */
|
/* Unlock the service database */
|
||||||
|
@ -5996,7 +6001,9 @@ DWORD REnumServicesStatusExA(
|
||||||
&lpStatusPtrIncrW->ServiceStatusProcess,
|
&lpStatusPtrIncrW->ServiceStatusProcess,
|
||||||
sizeof(SERVICE_STATUS));
|
sizeof(SERVICE_STATUS));
|
||||||
|
|
||||||
lpStatusPtrA->ServiceStatusProcess.dwProcessId = lpStatusPtrIncrW->ServiceStatusProcess.dwProcessId; /* FIXME */
|
/* Copy the service process ID */
|
||||||
|
lpStatusPtrA->ServiceStatusProcess.dwProcessId = lpStatusPtrIncrW->ServiceStatusProcess.dwProcessId;
|
||||||
|
|
||||||
lpStatusPtrA->ServiceStatusProcess.dwServiceFlags = 0; /* FIXME */
|
lpStatusPtrA->ServiceStatusProcess.dwServiceFlags = 0; /* FIXME */
|
||||||
|
|
||||||
lpStatusPtrIncrW++;
|
lpStatusPtrIncrW++;
|
||||||
|
@ -6274,8 +6281,13 @@ DWORD REnumServicesStatusExW(
|
||||||
memcpy(&lpStatusPtr->ServiceStatusProcess,
|
memcpy(&lpStatusPtr->ServiceStatusProcess,
|
||||||
&CurrentService->Status,
|
&CurrentService->Status,
|
||||||
sizeof(SERVICE_STATUS));
|
sizeof(SERVICE_STATUS));
|
||||||
lpStatusPtr->ServiceStatusProcess.dwProcessId =
|
|
||||||
(CurrentService->lpImage != NULL) ? CurrentService->lpImage->dwProcessId : 0; /* FIXME */
|
/* Copy the service process ID */
|
||||||
|
if ((CurrentService->Status.dwCurrentState == SERVICE_STOPPED) ||(CurrentService->lpImage != NULL))
|
||||||
|
lpStatusPtr->ServiceStatusProcess.dwProcessId = 0;
|
||||||
|
else
|
||||||
|
lpStatusPtr->ServiceStatusProcess.dwProcessId = CurrentService->lpImage->dwProcessId;
|
||||||
|
|
||||||
lpStatusPtr->ServiceStatusProcess.dwServiceFlags = 0; /* FIXME */
|
lpStatusPtr->ServiceStatusProcess.dwServiceFlags = 0; /* FIXME */
|
||||||
|
|
||||||
lpStatusPtr++;
|
lpStatusPtr++;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue