Fixed Ps macros

svn path=/trunk/; revision=1218
This commit is contained in:
Eric Kohl 2000-07-01 22:38:15 +00:00
parent 6abd233802
commit 83e4b66c10
6 changed files with 126 additions and 56 deletions

View file

@ -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 #ifndef _INCLUDE_DDK_PSFUNCS_H
#define _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, NTSTATUS
PACCESS_TOKEN* Token); STDCALL
PsAssignImpersonationToken (
HANDLE STDCALL PsGetCurrentProcessId(VOID); PETHREAD Thread,
HANDLE STDCALL PsGetCurrentThreadId(VOID); HANDLE TokenHandle
);
/* /*
* FUNCTION: Creates a thread which executes in kernel mode * FUNCTION: Creates a thread which executes in kernel mode
@ -30,37 +27,47 @@ HANDLE STDCALL PsGetCurrentThreadId(VOID);
* execution * execution
* RETURNS: Success or failure status * RETURNS: Success or failure status
*/ */
NTSTATUS STDCALL PsCreateSystemThread(PHANDLE ThreadHandle, NTSTATUS
STDCALL
PsCreateSystemThread (
PHANDLE ThreadHandle,
ACCESS_MASK DesiredAccess, ACCESS_MASK DesiredAccess,
POBJECT_ATTRIBUTES ObjectAttributes, POBJECT_ATTRIBUTES ObjectAttributes,
HANDLE ProcessHandle, HANDLE ProcessHandle,
PCLIENT_ID ClientId, PCLIENT_ID ClientId,
PKSTART_ROUTINE StartRoutine, PKSTART_ROUTINE StartRoutine,
PVOID StartContext); 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);
VOID STDCALL PsImpersonateClient(PETHREAD Thread, /*
PACCESS_TOKEN Token, * PEPROCESS
UCHAR b, * PsGetCurrentProcess (
UCHAR c, * VOID
SECURITY_IMPERSONATION_LEVEL Level); * );
VOID STDCALL PsRevertToSelf(PETHREAD Thread); */
#define PsGetCurrentProcess() \
(IoGetCurrentProcess ())
HANDLE
STDCALL
PsGetCurrentProcessId (
VOID
);
/*
* PETHREAD
* PsGetCurrentThread (
* VOID
* );
*/
#define PsGetCurrentThread() \
((PETHREAD)KeGetCurrentThread ())
HANDLE
STDCALL
PsGetCurrentThreadId (
VOID
);
BOOLEAN BOOLEAN
STDCALL STDCALL
@ -71,6 +78,52 @@ PsGetVersion (
PUNICODE_STRING CSDVersion OPTIONAL 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 #endif
/* EOF */ /* EOF */

View file

@ -35,6 +35,22 @@ NTSTATUS PsInitializeThread(HANDLE ProcessHandle,
ACCESS_MASK DesiredAccess, ACCESS_MASK DesiredAccess,
POBJECT_ATTRIBUTES ObjectAttributes); 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_INVALID (0)
#define THREAD_STATE_RUNNABLE (1) #define THREAD_STATE_RUNNABLE (1)
#define THREAD_STATE_RUNNING (2) #define THREAD_STATE_RUNNING (2)

View file

@ -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 * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel * PROJECT: ReactOS kernel
@ -17,16 +17,6 @@
/* FUNCTIONS *****************************************************************/ /* FUNCTIONS *****************************************************************/
PEPROCESS
STDCALL
IoGetCurrentProcess (
VOID
)
{
return (PsGetCurrentProcess());
}
PVOID PVOID
STDCALL STDCALL
IoGetInitialStack ( IoGetInitialStack (

View file

@ -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 * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel * PROJECT: ReactOS kernel
@ -285,10 +285,14 @@ HANDLE STDCALL PsGetCurrentProcessId(VOID)
return((HANDLE)PsGetCurrentProcess()->UniqueProcessId); return((HANDLE)PsGetCurrentProcess()->UniqueProcessId);
} }
struct _EPROCESS* PsGetCurrentProcess(VOID)
/* /*
* FUNCTION: Returns a pointer to the current process * FUNCTION: Returns a pointer to the current process
*/ */
PEPROCESS
STDCALL
IoGetCurrentProcess (
VOID
)
{ {
if (PsGetCurrentThread() == NULL || if (PsGetCurrentThread() == NULL ||
PsGetCurrentThread()->ThreadsProcess == NULL) PsGetCurrentThread()->ThreadsProcess == NULL)

View file

@ -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 * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel * PROJECT: ReactOS kernel
@ -115,12 +115,18 @@ KeGetCurrentThread (
return(&(CurrentThread->Tcb)); return(&(CurrentThread->Tcb));
} }
/*
PETHREAD PsGetCurrentThread(VOID) PETHREAD PsGetCurrentThread(VOID)
{ {
return(CurrentThread); return(CurrentThread);
} }
*/
HANDLE STDCALL PsGetCurrentThreadId(VOID) HANDLE
STDCALL
PsGetCurrentThreadId (
VOID
)
{ {
return(CurrentThread->Cid.UniqueThread); return(CurrentThread->Cid.UniqueThread);
} }

View file

@ -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 * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel * PROJECT: ReactOS kernel
@ -13,6 +13,7 @@
#include <limits.h> #include <limits.h>
#include <ddk/ntddk.h> #include <ddk/ntddk.h>
#include <internal/ps.h>
#include <internal/debug.h> #include <internal/debug.h>