mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 06:22:58 +00:00
Implemented PsCreateSystemProcess()
svn path=/trunk/; revision=1815
This commit is contained in:
parent
71d0b655ac
commit
cb2396496c
4 changed files with 71 additions and 44 deletions
|
@ -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
|
#ifndef _INCLUDE_DDK_PSFUNCS_H
|
||||||
#define _INCLUDE_DDK_PSFUNCS_H
|
#define _INCLUDE_DDK_PSFUNCS_H
|
||||||
|
@ -34,6 +34,10 @@ NTSTATUS STDCALL PsCreateSystemThread(PHANDLE ThreadHandle,
|
||||||
PVOID StartContext);
|
PVOID StartContext);
|
||||||
NTSTATUS STDCALL PsTerminateSystemThread(NTSTATUS ExitStatus);
|
NTSTATUS STDCALL PsTerminateSystemThread(NTSTATUS ExitStatus);
|
||||||
|
|
||||||
|
NTSTATUS STDCALL PsCreateSystemProcess(PHANDLE ProcessHandle,
|
||||||
|
ACCESS_MASK DesiredAccess,
|
||||||
|
POBJECT_ATTRIBUTES ObjectAttributes);
|
||||||
|
|
||||||
struct _ETHREAD* STDCALL PsGetCurrentThread(VOID);
|
struct _ETHREAD* STDCALL PsGetCurrentThread(VOID);
|
||||||
struct _EPROCESS* STDCALL PsGetCurrentProcess(VOID);
|
struct _EPROCESS* STDCALL PsGetCurrentProcess(VOID);
|
||||||
PACCESS_TOKEN STDCALL PsReferenceImpersonationToken(struct _ETHREAD* Thread,
|
PACCESS_TOKEN STDCALL PsReferenceImpersonationToken(struct _ETHREAD* Thread,
|
||||||
|
|
|
@ -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
|
; reactos/ntoskrnl/ntoskrnl.def
|
||||||
;
|
;
|
||||||
|
@ -586,7 +586,7 @@ PoUnregisterSystemState@4
|
||||||
;ProbeForWrite@12
|
;ProbeForWrite@12
|
||||||
PsAssignImpersonationToken@8
|
PsAssignImpersonationToken@8
|
||||||
;PsChargePoolQuota@12
|
;PsChargePoolQuota@12
|
||||||
;PsCreateSystemProcess@12
|
PsCreateSystemProcess@12
|
||||||
PsCreateSystemThread@28
|
PsCreateSystemThread@28
|
||||||
;PsCreateWin32Process@4
|
;PsCreateWin32Process@4
|
||||||
;PsEstablishWin32Callouts@24
|
;PsEstablishWin32Callouts@24
|
||||||
|
|
|
@ -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
|
; reactos/ntoskrnl/ntoskrnl.def
|
||||||
;
|
;
|
||||||
|
@ -586,7 +586,7 @@ PoUnregisterSystemState=PoUnregisterSystemState@4
|
||||||
;ProbeForWrite=ProbeForWrite@12
|
;ProbeForWrite=ProbeForWrite@12
|
||||||
PsAssignImpersonationToken=PsAssignImpersonationToken@8
|
PsAssignImpersonationToken=PsAssignImpersonationToken@8
|
||||||
;PsChargePoolQuota=PsChargePoolQuota@12
|
;PsChargePoolQuota=PsChargePoolQuota@12
|
||||||
;PsCreateSystemProcess=PsCreateSystemProcess@12
|
PsCreateSystemProcess=PsCreateSystemProcess@12
|
||||||
PsCreateSystemThread=PsCreateSystemThread@28
|
PsCreateSystemThread=PsCreateSystemThread@28
|
||||||
;PsCreateWin32Process
|
;PsCreateWin32Process
|
||||||
;PsEstablishWin32Callouts
|
;PsEstablishWin32Callouts
|
||||||
|
|
|
@ -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
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS kernel
|
* 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
|
* FUNCTION: Returns a pointer to the current process
|
||||||
*/
|
*/
|
||||||
|
@ -304,7 +305,8 @@ PKPROCESS KeGetCurrentProcess(VOID)
|
||||||
return(&(PsGetCurrentProcess()->Pcb));
|
return(&(PsGetCurrentProcess()->Pcb));
|
||||||
}
|
}
|
||||||
|
|
||||||
HANDLE STDCALL PsGetCurrentProcessId(VOID)
|
HANDLE STDCALL
|
||||||
|
PsGetCurrentProcessId(VOID)
|
||||||
{
|
{
|
||||||
return((HANDLE)PsGetCurrentProcess()->UniqueProcessId);
|
return((HANDLE)PsGetCurrentProcess()->UniqueProcessId);
|
||||||
}
|
}
|
||||||
|
@ -312,7 +314,8 @@ HANDLE STDCALL PsGetCurrentProcessId(VOID)
|
||||||
/*
|
/*
|
||||||
* FUNCTION: Returns a pointer to the current process
|
* FUNCTION: Returns a pointer to the current process
|
||||||
*/
|
*/
|
||||||
PEPROCESS STDCALL PsGetCurrentProcess(VOID)
|
PEPROCESS STDCALL
|
||||||
|
PsGetCurrentProcess(VOID)
|
||||||
{
|
{
|
||||||
if (PsGetCurrentThread() == NULL ||
|
if (PsGetCurrentThread() == NULL ||
|
||||||
PsGetCurrentThread()->ThreadsProcess == NULL)
|
PsGetCurrentThread()->ThreadsProcess == NULL)
|
||||||
|
@ -325,13 +328,29 @@ PEPROCESS STDCALL PsGetCurrentProcess(VOID)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
PEPROCESS STDCALL IoGetCurrentProcess(VOID)
|
PEPROCESS STDCALL
|
||||||
|
IoGetCurrentProcess(VOID)
|
||||||
{
|
{
|
||||||
return(PsGetCurrentProcess());
|
return(PsGetCurrentProcess());
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS STDCALL
|
NTSTATUS STDCALL
|
||||||
NtCreateProcess (OUT PHANDLE ProcessHandle,
|
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,
|
IN ACCESS_MASK DesiredAccess,
|
||||||
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
|
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
|
||||||
IN HANDLE ParentProcessHandle,
|
IN HANDLE ParentProcessHandle,
|
||||||
|
@ -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 ACCESS_MASK DesiredAccess,
|
||||||
IN POBJECT_ATTRIBUTES ObjectAttributes,
|
IN POBJECT_ATTRIBUTES ObjectAttributes,
|
||||||
IN PCLIENT_ID ClientId)
|
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,
|
IN CINT ProcessInformationClass,
|
||||||
OUT PVOID ProcessInformation,
|
OUT PVOID ProcessInformation,
|
||||||
IN ULONG ProcessInformationLength,
|
IN ULONG ProcessInformationLength,
|
||||||
|
@ -724,7 +745,8 @@ NTSTATUS STDCALL NtQueryInformationProcess (IN HANDLE ProcessHandle,
|
||||||
return(Status);
|
return(Status);
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS PspAssignPrimaryToken(PEPROCESS Process,
|
NTSTATUS
|
||||||
|
PspAssignPrimaryToken(PEPROCESS Process,
|
||||||
HANDLE TokenHandle)
|
HANDLE TokenHandle)
|
||||||
{
|
{
|
||||||
PACCESS_TOKEN Token;
|
PACCESS_TOKEN Token;
|
||||||
|
@ -750,7 +772,8 @@ NTSTATUS PspAssignPrimaryToken(PEPROCESS Process,
|
||||||
return(Status);
|
return(Status);
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS STDCALL NtSetInformationProcess(IN HANDLE ProcessHandle,
|
NTSTATUS STDCALL
|
||||||
|
NtSetInformationProcess(IN HANDLE ProcessHandle,
|
||||||
IN CINT ProcessInformationClass,
|
IN CINT ProcessInformationClass,
|
||||||
IN PVOID ProcessInformation,
|
IN PVOID ProcessInformation,
|
||||||
IN ULONG ProcessInformationLength)
|
IN ULONG ProcessInformationLength)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue