Implemented PsCreateSystemProcess()

svn path=/trunk/; revision=1815
This commit is contained in:
Eric Kohl 2001-04-21 12:39:33 +00:00
parent 71d0b655ac
commit cb2396496c
4 changed files with 71 additions and 44 deletions

View file

@ -1,4 +1,4 @@
/* $Id: psfuncs.h,v 1.12 2000/12/22 13:29:48 ekohl Exp $
/* $Id: psfuncs.h,v 1.13 2001/04/21 12:38:28 ekohl Exp $
*/
#ifndef _INCLUDE_DDK_PSFUNCS_H
#define _INCLUDE_DDK_PSFUNCS_H
@ -34,6 +34,10 @@ NTSTATUS STDCALL PsCreateSystemThread(PHANDLE ThreadHandle,
PVOID StartContext);
NTSTATUS STDCALL PsTerminateSystemThread(NTSTATUS ExitStatus);
NTSTATUS STDCALL PsCreateSystemProcess(PHANDLE ProcessHandle,
ACCESS_MASK DesiredAccess,
POBJECT_ATTRIBUTES ObjectAttributes);
struct _ETHREAD* STDCALL PsGetCurrentThread(VOID);
struct _EPROCESS* STDCALL PsGetCurrentProcess(VOID);
PACCESS_TOKEN STDCALL PsReferenceImpersonationToken(struct _ETHREAD* Thread,

View file

@ -1,4 +1,4 @@
; $Id: ntoskrnl.def,v 1.103 2001/04/16 00:48:04 chorns Exp $
; $Id: ntoskrnl.def,v 1.104 2001/04/21 12:39:33 ekohl Exp $
;
; reactos/ntoskrnl/ntoskrnl.def
;
@ -586,7 +586,7 @@ PoUnregisterSystemState@4
;ProbeForWrite@12
PsAssignImpersonationToken@8
;PsChargePoolQuota@12
;PsCreateSystemProcess@12
PsCreateSystemProcess@12
PsCreateSystemThread@28
;PsCreateWin32Process@4
;PsEstablishWin32Callouts@24

View file

@ -1,4 +1,4 @@
; $Id: ntoskrnl.edf,v 1.90 2001/04/16 00:48:04 chorns Exp $
; $Id: ntoskrnl.edf,v 1.91 2001/04/21 12:39:33 ekohl Exp $
;
; reactos/ntoskrnl/ntoskrnl.def
;
@ -586,7 +586,7 @@ PoUnregisterSystemState=PoUnregisterSystemState@4
;ProbeForWrite=ProbeForWrite@12
PsAssignImpersonationToken=PsAssignImpersonationToken@8
;PsChargePoolQuota=PsChargePoolQuota@12
;PsCreateSystemProcess=PsCreateSystemProcess@12
PsCreateSystemProcess=PsCreateSystemProcess@12
PsCreateSystemThread=PsCreateSystemThread@28
;PsCreateWin32Process
;PsEstablishWin32Callouts

View file

@ -1,4 +1,4 @@
/* $Id: process.c,v 1.62 2001/04/16 16:29:03 dwelch Exp $
/* $Id: process.c,v 1.63 2001/04/21 12:39:05 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -296,7 +296,8 @@ static NTSTATUS PsCreatePeb(HANDLE ProcessHandle,
}
PKPROCESS KeGetCurrentProcess(VOID)
PKPROCESS
KeGetCurrentProcess(VOID)
/*
* FUNCTION: Returns a pointer to the current process
*/
@ -304,7 +305,8 @@ PKPROCESS KeGetCurrentProcess(VOID)
return(&(PsGetCurrentProcess()->Pcb));
}
HANDLE STDCALL PsGetCurrentProcessId(VOID)
HANDLE STDCALL
PsGetCurrentProcessId(VOID)
{
return((HANDLE)PsGetCurrentProcess()->UniqueProcessId);
}
@ -312,7 +314,8 @@ HANDLE STDCALL PsGetCurrentProcessId(VOID)
/*
* FUNCTION: Returns a pointer to the current process
*/
PEPROCESS STDCALL PsGetCurrentProcess(VOID)
PEPROCESS STDCALL
PsGetCurrentProcess(VOID)
{
if (PsGetCurrentThread() == NULL ||
PsGetCurrentThread()->ThreadsProcess == NULL)
@ -325,11 +328,27 @@ PEPROCESS STDCALL PsGetCurrentProcess(VOID)
}
}
PEPROCESS STDCALL IoGetCurrentProcess(VOID)
PEPROCESS STDCALL
IoGetCurrentProcess(VOID)
{
return(PsGetCurrentProcess());
}
NTSTATUS STDCALL
PsCreateSystemProcess(PHANDLE ProcessHandle,
ACCESS_MASK DesiredAccess,
POBJECT_ATTRIBUTES ObjectAttributes)
{
return NtCreateProcess(ProcessHandle,
DesiredAccess,
ObjectAttributes,
SystemProcessHandle,
FALSE,
NULL,
NULL,
NULL);
}
NTSTATUS STDCALL
NtCreateProcess(OUT PHANDLE ProcessHandle,
IN ACCESS_MASK DesiredAccess,
@ -573,7 +592,8 @@ NtCreateProcess (OUT PHANDLE ProcessHandle,
}
NTSTATUS STDCALL NtOpenProcess (OUT PHANDLE ProcessHandle,
NTSTATUS STDCALL
NtOpenProcess(OUT PHANDLE ProcessHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes,
IN PCLIENT_ID ClientId)
@ -655,7 +675,8 @@ NTSTATUS STDCALL NtOpenProcess (OUT PHANDLE ProcessHandle,
}
NTSTATUS STDCALL NtQueryInformationProcess (IN HANDLE ProcessHandle,
NTSTATUS STDCALL
NtQueryInformationProcess(IN HANDLE ProcessHandle,
IN CINT ProcessInformationClass,
OUT PVOID ProcessInformation,
IN ULONG ProcessInformationLength,
@ -724,7 +745,8 @@ NTSTATUS STDCALL NtQueryInformationProcess (IN HANDLE ProcessHandle,
return(Status);
}
NTSTATUS PspAssignPrimaryToken(PEPROCESS Process,
NTSTATUS
PspAssignPrimaryToken(PEPROCESS Process,
HANDLE TokenHandle)
{
PACCESS_TOKEN Token;
@ -750,7 +772,8 @@ NTSTATUS PspAssignPrimaryToken(PEPROCESS Process,
return(Status);
}
NTSTATUS STDCALL NtSetInformationProcess(IN HANDLE ProcessHandle,
NTSTATUS STDCALL
NtSetInformationProcess(IN HANDLE ProcessHandle,
IN CINT ProcessInformationClass,
IN PVOID ProcessInformation,
IN ULONG ProcessInformationLength)