- Don't duplicate the process handle.

- Do close the process and thread handle if the caller doesn't request it.

svn path=/trunk/; revision=15687
This commit is contained in:
Hartmut Birr 2005-05-30 20:11:44 +00:00
parent 277b2da899
commit e3d66fd5c6

View file

@ -113,24 +113,6 @@ SmCreateUserProcess (LPWSTR ImagePath,
__FUNCTION__, Status);
}
}
else
{
HANDLE DupProcessHandle = (HANDLE) 0;
Status = NtDuplicateObject (NtCurrentProcess(),
pProcessInfo->ProcessHandle,
NtCurrentProcess(),
& DupProcessHandle,
PROCESS_ALL_ACCESS,
0, 0);
if(!NT_SUCCESS(Status))
{
DPRINT1("SM: %s: NtDuplicateObject failed (Status=0x%08lx)\n",
__FUNCTION__, Status);
}
pProcessInfo->ProcessHandle = DupProcessHandle;
}
/* Wait for process termination */
if (WaitForIt)
@ -145,6 +127,11 @@ SmCreateUserProcess (LPWSTR ImagePath,
}
}
if (NULL == UserProcessInfo)
{
NtClose(pProcessInfo->ProcessHandle);
NtClose(pProcessInfo->ThreadHandle);
}
return Status;
}