mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 17:34:57 +00:00
[ADVAPI32]
CreateProcessAsUserA/W: Make hToken optional. svn path=/trunk/; revision=70478
This commit is contained in:
parent
42fdef7ea4
commit
94a6bf4cf5
1 changed files with 32 additions and 26 deletions
|
@ -125,20 +125,23 @@ CreateProcessAsUserA(HANDLE hToken,
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
AccessToken.Token = hToken;
|
||||
AccessToken.Thread = NULL;
|
||||
|
||||
/* Set the new process token */
|
||||
Status = NtSetInformationProcess(lpProcessInformation->hProcess,
|
||||
ProcessAccessToken,
|
||||
(PVOID)&AccessToken,
|
||||
sizeof(AccessToken));
|
||||
if (!NT_SUCCESS (Status))
|
||||
if (hToken != NULL)
|
||||
{
|
||||
ERR("NtSetInformationProcess failed: 0x%08x\n", Status);
|
||||
TerminateProcess(lpProcessInformation->hProcess, Status);
|
||||
SetLastError(RtlNtStatusToDosError(Status));
|
||||
return FALSE;
|
||||
AccessToken.Token = hToken;
|
||||
AccessToken.Thread = NULL;
|
||||
|
||||
/* Set the new process token */
|
||||
Status = NtSetInformationProcess(lpProcessInformation->hProcess,
|
||||
ProcessAccessToken,
|
||||
(PVOID)&AccessToken,
|
||||
sizeof(AccessToken));
|
||||
if (!NT_SUCCESS (Status))
|
||||
{
|
||||
ERR("NtSetInformationProcess failed: 0x%08x\n", Status);
|
||||
TerminateProcess(lpProcessInformation->hProcess, Status);
|
||||
SetLastError(RtlNtStatusToDosError(Status));
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
/* Resume the main thread */
|
||||
|
@ -190,20 +193,23 @@ CreateProcessAsUserW(HANDLE hToken,
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
AccessToken.Token = hToken;
|
||||
AccessToken.Thread = NULL;
|
||||
|
||||
/* Set the new process token */
|
||||
Status = NtSetInformationProcess(lpProcessInformation->hProcess,
|
||||
ProcessAccessToken,
|
||||
(PVOID)&AccessToken,
|
||||
sizeof(AccessToken));
|
||||
if (!NT_SUCCESS (Status))
|
||||
if (hToken != NULL)
|
||||
{
|
||||
ERR("NtSetInformationProcess failed: 0x%08x\n", Status);
|
||||
TerminateProcess(lpProcessInformation->hProcess, Status);
|
||||
SetLastError(RtlNtStatusToDosError(Status));
|
||||
return FALSE;
|
||||
AccessToken.Token = hToken;
|
||||
AccessToken.Thread = NULL;
|
||||
|
||||
/* Set the new process token */
|
||||
Status = NtSetInformationProcess(lpProcessInformation->hProcess,
|
||||
ProcessAccessToken,
|
||||
(PVOID)&AccessToken,
|
||||
sizeof(AccessToken));
|
||||
if (!NT_SUCCESS (Status))
|
||||
{
|
||||
ERR("NtSetInformationProcess failed: 0x%08x\n", Status);
|
||||
TerminateProcess(lpProcessInformation->hProcess, Status);
|
||||
SetLastError(RtlNtStatusToDosError(Status));
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
/* Resume the main thread */
|
||||
|
|
Loading…
Reference in a new issue