From 26432ca94bb2ca9b492f52c54dd74d2f056939a0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Sat, 21 Sep 2013 20:46:42 +0000 Subject: [PATCH] [NTOS] - Implement PsGetCurrentThreadProcess, PsGetCurrentThreadProcessId and PsGetCurrentThreadTeb based on their non-current versions. - Fix PsGetThreadSessionId to call MmGetSessionId. - Fix the return value type of PsGetJobSessionId. - Remove an unneeded cast. svn path=/trunk/; revision=60296 --- reactos/ntoskrnl/ntoskrnl.spec | 6 +-- reactos/ntoskrnl/ps/job.c | 4 +- reactos/ntoskrnl/ps/query.c | 2 +- reactos/ntoskrnl/ps/thread.c | 72 ++++++++++++++++++++++++---------- 4 files changed, 57 insertions(+), 27 deletions(-) diff --git a/reactos/ntoskrnl/ntoskrnl.spec b/reactos/ntoskrnl/ntoskrnl.spec index 4deabb933e7..085a22a12cb 100644 --- a/reactos/ntoskrnl/ntoskrnl.spec +++ b/reactos/ntoskrnl/ntoskrnl.spec @@ -963,11 +963,11 @@ @ stdcall PsGetCurrentThread() KeGetCurrentThread @ stdcall PsGetCurrentThreadId() @ stdcall PsGetCurrentThreadPreviousMode() -;PsGetCurrentThreadProcess -;PsGetCurrentThreadProcessId +@ stdcall PsGetCurrentThreadProcess() +@ stdcall PsGetCurrentThreadProcessId() @ stdcall PsGetCurrentThreadStackBase() @ stdcall PsGetCurrentThreadStackLimit() -;PsGetCurrentThreadTeb +@ stdcall PsGetCurrentThreadTeb() @ stdcall PsGetCurrentThreadWin32Thread() ;PsGetCurrentThreadWin32ThreadAndEnterCriticalRegion @ stdcall PsGetJobLock(ptr) diff --git a/reactos/ntoskrnl/ps/job.c b/reactos/ntoskrnl/ps/job.c index dc279bc806a..3841364fdaf 100644 --- a/reactos/ntoskrnl/ps/job.c +++ b/reactos/ntoskrnl/ps/job.c @@ -527,12 +527,12 @@ PsGetJobLock ( PEJOB Job ) /* * @implemented */ -PVOID +ULONG NTAPI PsGetJobSessionId ( PEJOB Job ) { ASSERT(Job); - return (PVOID)Job->SessionId; + return Job->SessionId; } diff --git a/reactos/ntoskrnl/ps/query.c b/reactos/ntoskrnl/ps/query.c index 87d2fda3e90..3cbfa63a7e6 100644 --- a/reactos/ntoskrnl/ps/query.c +++ b/reactos/ntoskrnl/ps/query.c @@ -419,7 +419,7 @@ NtQueryInformationProcess(IN HANDLE ProcessHandle, _SEH2_TRY { /* Write back the Session ID */ - SessionInfo->SessionId = PtrToUlong(PsGetProcessSessionId(Process)); + SessionInfo->SessionId = PsGetProcessSessionId(Process); } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) { diff --git a/reactos/ntoskrnl/ps/thread.c b/reactos/ntoskrnl/ps/thread.c index 92d27cd30ca..07e8f99e85c 100644 --- a/reactos/ntoskrnl/ps/thread.c +++ b/reactos/ntoskrnl/ps/thread.c @@ -666,16 +666,6 @@ PsLookupThreadByThreadId(IN HANDLE ThreadId, return Status; } -/* - * @implemented - */ -HANDLE -NTAPI -PsGetCurrentThreadId(VOID) -{ - return PsGetCurrentThread()->Cid.UniqueThread; -} - /* * @implemented */ @@ -706,6 +696,16 @@ PsGetThreadId(IN PETHREAD Thread) return Thread->Cid.UniqueThread; } +/* + * @implemented + */ +HANDLE +NTAPI +PsGetCurrentThreadId(VOID) +{ + return PsGetCurrentThread()->Cid.UniqueThread; +} + /* * @implemented */ @@ -716,6 +716,16 @@ PsGetThreadProcess(IN PETHREAD Thread) return Thread->ThreadsProcess; } +/* + * @implemented + */ +PEPROCESS +NTAPI +PsGetCurrentThreadProcess(VOID) +{ + return PsGetCurrentThread()->ThreadsProcess; +} + /* * @implemented */ @@ -731,9 +741,19 @@ PsGetThreadProcessId(IN PETHREAD Thread) */ HANDLE NTAPI +PsGetCurrentThreadProcessId(VOID) +{ + return PsGetCurrentThread()->Cid.UniqueProcess; +} + +/* + * @implemented + */ +ULONG +NTAPI PsGetThreadSessionId(IN PETHREAD Thread) { - return (HANDLE)Thread->ThreadsProcess->Session; + return MmGetSessionId(Thread->ThreadsProcess); } /* @@ -746,6 +766,16 @@ PsGetThreadTeb(IN PETHREAD Thread) return Thread->Tcb.Teb; } +/* + * @implemented + */ +PTEB +NTAPI +PsGetCurrentThreadTeb(VOID) +{ + return PsGetCurrentThread()->Tcb.Teb; +} + /* * @implemented */ @@ -756,6 +786,16 @@ PsGetThreadWin32Thread(IN PETHREAD Thread) return Thread->Tcb.Win32Thread; } +/* + * @implemented + */ +PVOID +NTAPI +PsGetCurrentThreadWin32Thread(VOID) +{ + return PsGetCurrentThread()->Tcb.Win32Thread; +} + /* * @implemented */ @@ -827,16 +867,6 @@ PsSetThreadHardErrorsAreDisabled(IN PETHREAD Thread, Thread->HardErrorsAreDisabled = HardErrorsAreDisabled; } -/* - * @implemented - */ -PVOID -NTAPI -PsGetCurrentThreadWin32Thread(VOID) -{ - return PsGetCurrentThread()->Tcb.Win32Thread; -} - /* * @implemented */ -- 2.17.1