[SERVICES] Properly check again PID

This fixes services not being found.
With that commit and the previous one, I_QueryTagInformation is now fully
functionnal and properly returns service name for a specific tag
This commit is contained in:
Pierre Schweitzer 2018-12-30 21:25:48 +01:00
parent ebf8785661
commit c10901966e
No known key found for this signature in database
GPG key ID: 7545556C3D585B0B

View file

@ -147,7 +147,8 @@ ScmGetServiceImageByImagePath(LPWSTR lpImagePath)
DWORD
ScmGetServiceNameFromTag(PTAG_INFO_NAME_FROM_TAG_IN_PARAMS InParams, PTAG_INFO_NAME_FROM_TAG_OUT_PARAMS *OutParams)
ScmGetServiceNameFromTag(IN PTAG_INFO_NAME_FROM_TAG_IN_PARAMS InParams,
OUT PTAG_INFO_NAME_FROM_TAG_OUT_PARAMS *OutParams)
{
PLIST_ENTRY ServiceEntry;
PSERVICE CurrentService;
@ -172,7 +173,7 @@ ScmGetServiceNameFromTag(PTAG_INFO_NAME_FROM_TAG_IN_PARAMS InParams, PTAG_INFO_N
{
CurrentImage = CurrentService->lpImage;
/* And matching the PID */
if (CurrentImage->hProcess == (HANDLE)InParams->dwPid)
if (CurrentImage->dwProcessId == InParams->dwPid)
{
break;
}
@ -220,7 +221,10 @@ Cleanup:
/* If failure, free allocated memory */
if (dwError != ERROR_SUCCESS)
{
MIDL_user_free(OutBuffer);
if (OutBuffer != NULL)
{
MIDL_user_free(OutBuffer);
}
}
/* Return error/success */