kernelbase: Implement ProcessIdToSessionId().

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Alexandre Julliard 2021-07-01 15:30:48 +02:00
parent eb69da2a9c
commit 7995d6869a
1 changed files with 13 additions and 4 deletions

View File

@ -1024,11 +1024,20 @@ HANDLE WINAPI DECLSPEC_HOTPATCH OpenProcess( DWORD access, BOOL inherit, DWORD i
/***********************************************************************
* ProcessIdToSessionId (kernelbase.@)
*/
BOOL WINAPI DECLSPEC_HOTPATCH ProcessIdToSessionId( DWORD procid, DWORD *sessionid )
BOOL WINAPI DECLSPEC_HOTPATCH ProcessIdToSessionId( DWORD pid, DWORD *id )
{
if (procid != GetCurrentProcessId()) FIXME( "Unsupported for other process %x\n", procid );
*sessionid = NtCurrentTeb()->Peb->SessionId;
return TRUE;
HANDLE process;
NTSTATUS status;
if (pid == GetCurrentProcessId())
{
*id = NtCurrentTeb()->Peb->SessionId;
return TRUE;
}
if (!(process = OpenProcess( PROCESS_QUERY_LIMITED_INFORMATION, FALSE, pid ))) return FALSE;
status = NtQueryInformationProcess( process, ProcessSessionInformation, id, sizeof(*id), NULL );
CloseHandle( process );
return set_ntstatus( status );
}