Jacek Caban : ntoskrnl.exe: Implement PsGetThreadProcessId.

Alexandre Julliard julliard at winehq.org
Tue May 21 16:45:22 CDT 2019


Module: wine
Branch: master
Commit: 2f7e7863e0e0866495364da6cd4582f374f59e88
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=2f7e7863e0e0866495364da6cd4582f374f59e88

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Tue May 21 12:11:44 2019 +0200

ntoskrnl.exe: Implement PsGetThreadProcessId.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ntoskrnl.exe/ntoskrnl.c        | 9 +++++++++
 dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 2 +-
 dlls/ntoskrnl.exe/tests/driver.c    | 1 +
 include/ddk/ntddk.h                 | 1 +
 4 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index 89f7674..dbadacc 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -2688,6 +2688,15 @@ HANDLE WINAPI PsGetThreadId(PETHREAD thread)
     return thread->kthread.id.UniqueThread;
 }
 
+/*********************************************************************
+ *           PsGetThreadProcessId    (NTOSKRNL.@)
+ */
+HANDLE WINAPI PsGetThreadProcessId( PETHREAD thread )
+{
+    TRACE( "%p -> %p\n", thread, thread->kthread.id.UniqueProcess );
+    return thread->kthread.id.UniqueProcess;
+}
+
 /***********************************************************************
  *           KeInsertQueue   (NTOSKRNL.EXE.@)
  */
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
index 0105afb..202e919 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
+++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
@@ -902,7 +902,7 @@
 @ stub PsGetThreadHardErrorsAreDisabled
 @ stdcall PsGetThreadId(ptr)
 @ stub PsGetThreadProcess
-@ stub PsGetThreadProcessId
+@ stdcall PsGetThreadProcessId(ptr)
 @ stub PsGetThreadSessionId
 @ stub PsGetThreadTeb
 @ stub PsGetThreadWin32Thread
diff --git a/dlls/ntoskrnl.exe/tests/driver.c b/dlls/ntoskrnl.exe/tests/driver.c
index 1ad468e..688c608 100644
--- a/dlls/ntoskrnl.exe/tests/driver.c
+++ b/dlls/ntoskrnl.exe/tests/driver.c
@@ -346,6 +346,7 @@ static void test_current_thread(BOOL is_system)
         ok(current != *pPsInitialSystemProcess, "current == PsInitialSystemProcess\n");
 
     ok(PsGetProcessId(current) == PsGetCurrentProcessId(), "process IDs don't match\n");
+    ok(PsGetThreadProcessId((PETHREAD)KeGetCurrentThread()) == PsGetCurrentProcessId(), "process IDs don't match\n");
 
     thread = PsGetCurrentThread();
     ret = wait_single( thread, 0 );
diff --git a/include/ddk/ntddk.h b/include/ddk/ntddk.h
index 74df919..d6ecbae 100644
--- a/include/ddk/ntddk.h
+++ b/include/ddk/ntddk.h
@@ -221,6 +221,7 @@ void      WINAPI KeSetTargetProcessorDpc(PRKDPC,CCHAR);
 BOOLEAN   WINAPI MmIsAddressValid(void *);
 HANDLE    WINAPI PsGetProcessId(PEPROCESS);
 HANDLE    WINAPI PsGetThreadId(PETHREAD);
+HANDLE    WINAPI PsGetThreadProcessId(PETHREAD);
 NTSTATUS  WINAPI PsSetCreateProcessNotifyRoutine(PCREATE_PROCESS_NOTIFY_ROUTINE,BOOLEAN);
 NTSTATUS  WINAPI PsSetCreateProcessNotifyRoutineEx(PCREATE_PROCESS_NOTIFY_ROUTINE_EX,BOOLEAN);
 NTSTATUS  WINAPI PsSetCreateThreadNotifyRoutine(PCREATE_THREAD_NOTIFY_ROUTINE);




More information about the wine-cvs mailing list