From 83e4b66c107ab4f948a50f87d45d37477514023b Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Sat, 1 Jul 2000 22:38:15 +0000 Subject: [PATCH] Fixed Ps macros svn path=/trunk/; revision=1218 --- reactos/include/ddk/psfuncs.h | 133 +++++++++++++++++-------- reactos/ntoskrnl/include/internal/ps.h | 16 +++ reactos/ntoskrnl/io/process.c | 12 +-- reactos/ntoskrnl/ps/process.c | 8 +- reactos/ntoskrnl/ps/thread.c | 10 +- reactos/ntoskrnl/se/token.c | 3 +- 6 files changed, 126 insertions(+), 56 deletions(-) diff --git a/reactos/include/ddk/psfuncs.h b/reactos/include/ddk/psfuncs.h index 5a551a0032e..3ac0651a0d8 100644 --- a/reactos/include/ddk/psfuncs.h +++ b/reactos/include/ddk/psfuncs.h @@ -1,18 +1,15 @@ -/* $Id: psfuncs.h,v 1.7 2000/06/03 21:33:57 ekohl Exp $ +/* $Id: psfuncs.h,v 1.8 2000/07/01 22:36:53 ekohl Exp $ */ #ifndef _INCLUDE_DDK_PSFUNCS_H #define _INCLUDE_DDK_PSFUNCS_H -PACCESS_TOKEN PsReferenceEffectiveToken(PETHREAD Thread, - PTOKEN_TYPE TokenType, - PUCHAR b, - PSECURITY_IMPERSONATION_LEVEL Level); -NTSTATUS PsOpenTokenOfProcess(HANDLE ProcessHandle, - PACCESS_TOKEN* Token); - -HANDLE STDCALL PsGetCurrentProcessId(VOID); -HANDLE STDCALL PsGetCurrentThreadId(VOID); +NTSTATUS +STDCALL +PsAssignImpersonationToken ( + PETHREAD Thread, + HANDLE TokenHandle + ); /* * FUNCTION: Creates a thread which executes in kernel mode @@ -30,37 +27,47 @@ HANDLE STDCALL PsGetCurrentThreadId(VOID); * execution * RETURNS: Success or failure status */ -NTSTATUS STDCALL PsCreateSystemThread(PHANDLE ThreadHandle, - ACCESS_MASK DesiredAccess, - POBJECT_ATTRIBUTES ObjectAttributes, - HANDLE ProcessHandle, - PCLIENT_ID ClientId, - PKSTART_ROUTINE StartRoutine, - PVOID StartContext); -NTSTATUS STDCALL PsTerminateSystemThread(NTSTATUS ExitStatus); -ULONG PsSuspendThread(PETHREAD Thread, - PNTSTATUS WaitStatus, - UCHAR Alertable, - ULONG WaitMode); -ULONG PsResumeThread(PETHREAD Thread, - PNTSTATUS WaitStatus); -PETHREAD PsGetCurrentThread(VOID); -struct _EPROCESS* PsGetCurrentProcess(VOID); -PACCESS_TOKEN STDCALL PsReferenceImpersonationToken(PETHREAD Thread, - PULONG Unknown1, - PULONG Unknown2, - SECURITY_IMPERSONATION_LEVEL* - Level); -PACCESS_TOKEN STDCALL PsReferencePrimaryToken(PEPROCESS Process); -NTSTATUS STDCALL PsAssignImpersonationToken(PETHREAD Thread, - HANDLE TokenHandle); +NTSTATUS +STDCALL +PsCreateSystemThread ( + PHANDLE ThreadHandle, + ACCESS_MASK DesiredAccess, + POBJECT_ATTRIBUTES ObjectAttributes, + HANDLE ProcessHandle, + PCLIENT_ID ClientId, + PKSTART_ROUTINE StartRoutine, + PVOID StartContext + ); -VOID STDCALL PsImpersonateClient(PETHREAD Thread, - PACCESS_TOKEN Token, - UCHAR b, - UCHAR c, - SECURITY_IMPERSONATION_LEVEL Level); -VOID STDCALL PsRevertToSelf(PETHREAD Thread); +/* + * PEPROCESS + * PsGetCurrentProcess ( + * VOID + * ); + */ +#define PsGetCurrentProcess() \ + (IoGetCurrentProcess ()) + +HANDLE +STDCALL +PsGetCurrentProcessId ( + VOID + ); + +/* + * PETHREAD + * PsGetCurrentThread ( + * VOID + * ); +*/ +#define PsGetCurrentThread() \ + ((PETHREAD)KeGetCurrentThread ()) + +HANDLE +STDCALL +PsGetCurrentThreadId ( + VOID + ); BOOLEAN STDCALL @@ -71,6 +78,52 @@ PsGetVersion ( PUNICODE_STRING CSDVersion OPTIONAL ); +VOID +STDCALL +PsImpersonateClient ( + PETHREAD Thread, + PACCESS_TOKEN Token, + UCHAR b, + UCHAR c, + SECURITY_IMPERSONATION_LEVEL Level + ); + +PACCESS_TOKEN +STDCALL +PsReferenceImpersonationToken ( + PETHREAD Thread, + PULONG Unknown1, + PULONG Unknown2, + SECURITY_IMPERSONATION_LEVEL * Level + ); + +PACCESS_TOKEN +STDCALL +PsReferencePrimaryToken ( + PEPROCESS Process + ); + +#if 0 +/* FIXME: This is the correct prototype */ +VOID +STDCALL +PsRevertToSelf ( + VOID + ); +#endif + +VOID +STDCALL +PsRevertToSelf ( + PETHREAD Thread + ); + +NTSTATUS +STDCALL +PsTerminateSystemThread ( + NTSTATUS ExitStatus + ); + #endif /* EOF */ diff --git a/reactos/ntoskrnl/include/internal/ps.h b/reactos/ntoskrnl/include/internal/ps.h index d855d93c69e..03e39365d46 100644 --- a/reactos/ntoskrnl/include/internal/ps.h +++ b/reactos/ntoskrnl/include/internal/ps.h @@ -35,6 +35,22 @@ NTSTATUS PsInitializeThread(HANDLE ProcessHandle, ACCESS_MASK DesiredAccess, POBJECT_ATTRIBUTES ObjectAttributes); +PACCESS_TOKEN PsReferenceEffectiveToken(PETHREAD Thread, + PTOKEN_TYPE TokenType, + PUCHAR b, + PSECURITY_IMPERSONATION_LEVEL Level); + +NTSTATUS PsOpenTokenOfProcess(HANDLE ProcessHandle, + PACCESS_TOKEN* Token); + +ULONG PsSuspendThread(PETHREAD Thread, + PNTSTATUS WaitStatus, + UCHAR Alertable, + ULONG WaitMode); +ULONG PsResumeThread(PETHREAD Thread, + PNTSTATUS WaitStatus); + + #define THREAD_STATE_INVALID (0) #define THREAD_STATE_RUNNABLE (1) #define THREAD_STATE_RUNNING (2) diff --git a/reactos/ntoskrnl/io/process.c b/reactos/ntoskrnl/io/process.c index 680cd6dff16..d815f298e42 100644 --- a/reactos/ntoskrnl/io/process.c +++ b/reactos/ntoskrnl/io/process.c @@ -1,4 +1,4 @@ -/* $Id: process.c,v 1.6 2000/06/12 14:57:10 ekohl Exp $ +/* $Id: process.c,v 1.7 2000/07/01 22:37:41 ekohl Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -17,16 +17,6 @@ /* FUNCTIONS *****************************************************************/ -PEPROCESS -STDCALL -IoGetCurrentProcess ( - VOID - ) -{ - return (PsGetCurrentProcess()); -} - - PVOID STDCALL IoGetInitialStack ( diff --git a/reactos/ntoskrnl/ps/process.c b/reactos/ntoskrnl/ps/process.c index b4cb73f3ddf..a7d64532f57 100644 --- a/reactos/ntoskrnl/ps/process.c +++ b/reactos/ntoskrnl/ps/process.c @@ -1,4 +1,4 @@ -/* $Id: process.c,v 1.46 2000/06/29 23:35:44 dwelch Exp $ +/* $Id: process.c,v 1.47 2000/07/01 22:37:28 ekohl Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -285,10 +285,14 @@ HANDLE STDCALL PsGetCurrentProcessId(VOID) return((HANDLE)PsGetCurrentProcess()->UniqueProcessId); } -struct _EPROCESS* PsGetCurrentProcess(VOID) /* * FUNCTION: Returns a pointer to the current process */ +PEPROCESS +STDCALL +IoGetCurrentProcess ( + VOID + ) { if (PsGetCurrentThread() == NULL || PsGetCurrentThread()->ThreadsProcess == NULL) diff --git a/reactos/ntoskrnl/ps/thread.c b/reactos/ntoskrnl/ps/thread.c index 0e55596705c..b42876fc65e 100644 --- a/reactos/ntoskrnl/ps/thread.c +++ b/reactos/ntoskrnl/ps/thread.c @@ -1,4 +1,4 @@ -/* $Id: thread.c,v 1.49 2000/06/27 19:20:45 dwelch Exp $ +/* $Id: thread.c,v 1.50 2000/07/01 22:37:28 ekohl Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -115,12 +115,18 @@ KeGetCurrentThread ( return(&(CurrentThread->Tcb)); } +/* PETHREAD PsGetCurrentThread(VOID) { return(CurrentThread); } +*/ -HANDLE STDCALL PsGetCurrentThreadId(VOID) +HANDLE +STDCALL +PsGetCurrentThreadId ( + VOID + ) { return(CurrentThread->Cid.UniqueThread); } diff --git a/reactos/ntoskrnl/se/token.c b/reactos/ntoskrnl/se/token.c index 287ae0f84d3..6205110fe70 100644 --- a/reactos/ntoskrnl/se/token.c +++ b/reactos/ntoskrnl/se/token.c @@ -1,4 +1,4 @@ -/* $Id: token.c,v 1.7 2000/06/29 23:35:45 dwelch Exp $ +/* $Id: token.c,v 1.8 2000/07/01 22:38:15 ekohl Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -13,6 +13,7 @@ #include #include +#include #include