[PATCH v2 01/10] ntoskrnl.exe: Implement PsLookupThreadByThreadId.
Zebediah Figura
z.figura12 at gmail.com
Wed Apr 10 00:14:31 CDT 2019
On 4/10/19 12:12 AM, Derek Lesho wrote:
> On Tue, Apr 9, 2019 at 7:34 PM Zebediah Figura <z.figura12 at gmail.com
> <mailto:z.figura12 at gmail.com>> wrote:
>
> On 04/09/2019 02:29 PM, Derek Lesho wrote:
> > Signed-off-by: Derek Lesho <dereklesho52 at Gmail.com>
> > ---
> > dlls/ntoskrnl.exe/ntoskrnl.c | 20 ++++++++++++++++++++
> > dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 2 +-
> > 2 files changed, 21 insertions(+), 1 deletion(-)
> >
> > diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c
> b/dlls/ntoskrnl.exe/ntoskrnl.c
> > index f5dee07e2f..770bdfd4fa 100644
> > --- a/dlls/ntoskrnl.exe/ntoskrnl.c
> > +++ b/dlls/ntoskrnl.exe/ntoskrnl.c
> > @@ -3245,6 +3245,26 @@ NTSTATUS WINAPI
> PsLookupProcessByProcessId(HANDLE processid, PEPROCESS *process)
> > }
> >
> >
> > +/*****************************************************
> > + * PsLookupThreadByThreadId (NTOSKRNL.EXE.@)
> > + */
> > +NTSTATUS WINAPI PsLookupThreadByThreadId(HANDLE threadid,
> PETHREAD *thread)
> > +{
> > + NTSTATUS status;
> > + HANDLE hThread = OpenThread( THREAD_ALL_ACCESS, FALSE,
> HandleToUlong(threadid) );
> > +
> > + if (!hThread)
> > + return STATUS_INVALID_PARAMETER;
> > +
> > + status = kernel_object_from_handle( hThread, PsThreadType,
> (void**)thread );
> > +
> > + ObReferenceObject( *thread );
> > +
> > + NtClose( hThread );
> > + return status;
> > +}
> > +
> > +
> > /*****************************************************
> > * IoSetThreadHardErrorMode (NTOSKRNL.EXE.@)
> > */
> > diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
> b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
> > index 43f47470a9..601506246e 100644
> > --- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
> > +++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
> > @@ -913,7 +913,7 @@
> > @ stub PsJobType
> > @ stdcall PsLookupProcessByProcessId(ptr ptr)
> > @ stub PsLookupProcessThreadByCid
> > -@ stub PsLookupThreadByThreadId
> > +@ stdcall PsLookupThreadByThreadId(ptr ptr)
> > @ extern PsProcessType
> > @ stub PsReferenceImpersonationToken
> > @ stub PsReferencePrimaryToken
> >
>
> Can we have tests for this function?
>
> And while you're at it, can you add it to the public header?
>
>
> Sure, will do. I Just based the return value on the MSDN, but I guess
> it doesn't hurt to check.
>
>
As far as signatures go, it's better to look at the PSDK headers anyway;
I've seen MSDN be wrong several times.
More information about the wine-devel
mailing list