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
#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 */

View file

@ -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)

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
* PROJECT: ReactOS kernel
@ -17,16 +17,6 @@
/* FUNCTIONS *****************************************************************/
PEPROCESS
STDCALL
IoGetCurrentProcess (
VOID
)
{
return (PsGetCurrentProcess());
}
PVOID
STDCALL
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
* 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)

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
* 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);
}

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
* PROJECT: ReactOS kernel
@ -13,6 +13,7 @@
#include <limits.h>
#include <ddk/ntddk.h>
#include <internal/ps.h>
#include <internal/debug.h>