From 11272023e59dc3df9fd856b717e50eae0d579803 Mon Sep 17 00:00:00 2001 From: Alex Ionescu Date: Tue, 13 Sep 2005 23:28:21 +0000 Subject: [PATCH] Part 1 of ntoskrnl header cleanups svn path=/trunk/; revision=17844 --- reactos/include/ndk/ketypes.h | 7 + reactos/include/ndk/pstypes.h | 5 + reactos/ntoskrnl/include/internal/ex.h | 1 + reactos/ntoskrnl/include/internal/ke.h | 69 ++++ reactos/ntoskrnl/include/internal/mm.h | 9 + reactos/ntoskrnl/include/internal/ps.h | 427 +++++++++++++++-------- reactos/ntoskrnl/include/internal/se.h | 246 ++++++++----- reactos/ntoskrnl/include/internal/test.h | 65 ++-- reactos/ntoskrnl/include/internal/v86m.h | 67 ---- reactos/ntoskrnl/kdbg/kdb.c | 4 +- reactos/ntoskrnl/kdbg/kdb_cli.c | 8 +- reactos/ntoskrnl/kdbg/kdb_symbols.c | 2 +- reactos/ntoskrnl/ke/process.c | 2 +- reactos/ntoskrnl/ke/usercall.c | 6 +- reactos/ntoskrnl/ps/idle.c | 2 + reactos/ntoskrnl/ps/job.c | 3 + reactos/ntoskrnl/ps/locale.c | 4 +- reactos/ntoskrnl/ps/process.c | 4 +- reactos/ntoskrnl/ps/psmgr.c | 15 +- reactos/ntoskrnl/ps/win32.c | 5 +- reactos/ntoskrnl/se/acl.c | 6 +- reactos/ntoskrnl/se/luid.c | 5 +- reactos/ntoskrnl/se/priv.c | 7 +- reactos/ntoskrnl/se/sd.c | 6 +- reactos/ntoskrnl/se/semgr.c | 9 +- reactos/ntoskrnl/se/sid.c | 6 +- reactos/ntoskrnl/se/token.c | 15 +- 27 files changed, 644 insertions(+), 361 deletions(-) diff --git a/reactos/include/ndk/ketypes.h b/reactos/include/ndk/ketypes.h index 44c993a9126..d3ac69ba0c4 100644 --- a/reactos/include/ndk/ketypes.h +++ b/reactos/include/ndk/ketypes.h @@ -147,6 +147,13 @@ typedef enum _KTHREAD_STATE DeferredReady, } KTHREAD_STATE, *PKTHREAD_STATE; +typedef enum _KPROCESS_STATE +{ + ProcessInMemory, + ProcessOutOfMemory, + ProcessInTransition, +} KPROCESS_STATE, *PKPROCESS_STATE; + /* FUNCTION TYPES ************************************************************/ #ifdef NTOS_MODE_USER diff --git a/reactos/include/ndk/pstypes.h b/reactos/include/ndk/pstypes.h index b9931c9334b..15684099070 100644 --- a/reactos/include/ndk/pstypes.h +++ b/reactos/include/ndk/pstypes.h @@ -56,6 +56,11 @@ extern NTSYSAPI POBJECT_TYPE PsProcessType; #define PROCESS_PRIORITY_CLASS_BELOW_NORMAL 5 #define PROCESS_PRIORITY_CLASS_ABOVE_NORMAL 6 +/* Process base priorities */ +#define PROCESS_PRIORITY_IDLE 3 +#define PROCESS_PRIORITY_NORMAL 8 +#define PROCESS_PRIORITY_NORMAL_FOREGROUND 9 + /* Global Flags */ #define FLG_STOP_ON_EXCEPTION 0x00000001 #define FLG_SHOW_LDR_SNAPS 0x00000002 diff --git a/reactos/ntoskrnl/include/internal/ex.h b/reactos/ntoskrnl/include/internal/ex.h index ea98e68ced4..bd9fb1b4473 100644 --- a/reactos/ntoskrnl/include/internal/ex.h +++ b/reactos/ntoskrnl/include/internal/ex.h @@ -200,6 +200,7 @@ NTSTATUS ExpSetTimeZoneInformation(PTIME_ZONE_INFORMATION TimeZoneInformation); NTSTATUS +NTAPI ExpAllocateLocallyUniqueId(OUT LUID *LocallyUniqueId); VOID diff --git a/reactos/ntoskrnl/include/internal/ke.h b/reactos/ntoskrnl/include/internal/ke.h index a49b938599f..cb9046e7f03 100644 --- a/reactos/ntoskrnl/include/internal/ke.h +++ b/reactos/ntoskrnl/include/internal/ke.h @@ -416,6 +416,75 @@ KeRosGetStackFrames( VOID KiSetSystemTime(PLARGE_INTEGER NewSystemTime); +/* Emulate cli/sti instructions */ +#define KV86M_EMULATE_CLI_STI (0x1) +/* Allow the v86 mode code to access i/o ports */ +#define KV86M_ALLOW_IO_PORT_ACCESS (0x2) + +typedef struct _KV86M_REGISTERS +{ + /* + * General purpose registers + */ + ULONG Ebp; + ULONG Edi; + ULONG Esi; + ULONG Edx; + ULONG Ecx; + ULONG Ebx; + ULONG Eax; + ULONG Ds; + ULONG Es; + ULONG Fs; + ULONG Gs; + + /* + * Control registers + */ + ULONG Eip; + ULONG Cs; + ULONG Eflags; + ULONG Esp; + ULONG Ss; + + /* + * Control structures + */ + ULONG RecoveryAddress; + UCHAR RecoveryInstruction[4]; + ULONG Vif; + ULONG Flags; + PNTSTATUS PStatus; +} KV86M_REGISTERS, *PKV86M_REGISTERS; + +typedef struct _KV86M_TRAP_FRAME +{ + KTRAP_FRAME Tf; + + ULONG SavedExceptionStack; + + /* + * These are put on the top of the stack by the routine that entered + * v86 mode so the exception handlers can find the control information + */ + struct _KV86M_REGISTERS* regs; + ULONG orig_ebp; +} KV86M_TRAP_FRAME, *PKV86M_TRAP_FRAME; + +NTSTATUS +STDCALL +Ke386CallBios( + UCHAR Int, + PKV86M_REGISTERS Regs +); + +ULONG +KeV86Exception( + ULONG ExceptionNr, + PKTRAP_FRAME Tf, + ULONG address +); + #define MAXIMUM_PROCESSORS 32 #endif /* __NTOSKRNL_INCLUDE_INTERNAL_KE_H */ diff --git a/reactos/ntoskrnl/include/internal/mm.h b/reactos/ntoskrnl/include/internal/mm.h index b418ee465cb..4fc09bac0ba 100644 --- a/reactos/ntoskrnl/include/internal/mm.h +++ b/reactos/ntoskrnl/include/internal/mm.h @@ -888,4 +888,13 @@ VOID MiStartPagerThread(VOID); VOID MiStopPagerThread(VOID); + +NTSTATUS FASTCALL +MiQueryVirtualMemory (IN HANDLE ProcessHandle, + IN PVOID Address, + IN CINT VirtualMemoryInformationClass, + OUT PVOID VirtualMemoryInformation, + IN ULONG Length, + OUT PULONG ResultLength); + #endif diff --git a/reactos/ntoskrnl/include/internal/ps.h b/reactos/ntoskrnl/include/internal/ps.h index ccee3e26390..e6968884579 100644 --- a/reactos/ntoskrnl/include/internal/ps.h +++ b/reactos/ntoskrnl/include/internal/ps.h @@ -10,105 +10,6 @@ struct _EJOB; extern LCID PsDefaultThreadLocaleId; extern LCID PsDefaultSystemLocaleId; - -/* Top level irp definitions. */ -#define FSRTL_FSP_TOP_LEVEL_IRP (0x01) -#define FSRTL_CACHE_TOP_LEVEL_IRP (0x02) -#define FSRTL_MOD_WRITE_TOP_LEVEL_IRP (0x03) -#define FSRTL_FAST_IO_TOP_LEVEL_IRP (0x04) -#define FSRTL_MAX_TOP_LEVEL_IRP_FLAG (0x04) - -#define PROCESS_STATE_TERMINATED (1) -#define PROCESS_STATE_ACTIVE (2) - -VOID PiInitDefaultLocale(VOID); -VOID PiInitProcessManager(VOID); -VOID PiShutdownProcessManager(VOID); -VOID PsInitThreadManagment(VOID); -VOID PsInitProcessManagment(VOID); -VOID PsInitIdleThread(VOID); -VOID PiTerminateProcessThreads(PEPROCESS Process, NTSTATUS ExitStatus); -VOID PsTerminateCurrentThread(NTSTATUS ExitStatus); -VOID PsTerminateOtherThread(PETHREAD Thread, NTSTATUS ExitStatus); -VOID PsReleaseThread(PETHREAD Thread); -VOID PsBeginThread(PKSTART_ROUTINE StartRoutine, PVOID StartContext); -VOID PsBeginThreadWithContextInternal(VOID); -VOID PiKillMostProcesses(VOID); -NTSTATUS STDCALL PiTerminateProcess(PEPROCESS Process, NTSTATUS ExitStatus); -VOID PiInitApcManagement(VOID); -VOID STDCALL PiDeleteThread(PVOID ObjectBody); -VOID PsReapThreads(VOID); -VOID PsInitializeThreadReaper(VOID); -VOID PsQueueThreadReap(PETHREAD Thread); -NTSTATUS -PsInitializeThread(PEPROCESS Process, - PETHREAD* ThreadPtr, - POBJECT_ATTRIBUTES ObjectAttributes, - KPROCESSOR_MODE AccessMode, - BOOLEAN First); - -PACCESS_TOKEN STDCALL PsReferenceEffectiveToken(PETHREAD Thread, - PTOKEN_TYPE TokenType, - PUCHAR b, - PSECURITY_IMPERSONATION_LEVEL Level); - -NTSTATUS STDCALL PsOpenTokenOfProcess(HANDLE ProcessHandle, - PACCESS_TOKEN* Token); -VOID -STDCALL -PspTerminateProcessThreads(PEPROCESS Process, - NTSTATUS ExitStatus); -NTSTATUS PsSuspendThread(PETHREAD Thread, PULONG PreviousCount); -NTSTATUS PsResumeThread(PETHREAD Thread, PULONG PreviousCount); -NTSTATUS -STDCALL -PspAssignPrimaryToken(PEPROCESS Process, - HANDLE TokenHandle); -VOID STDCALL PsExitSpecialApc(PKAPC Apc, - PKNORMAL_ROUTINE *NormalRoutine, - PVOID *NormalContext, - PVOID *SystemArgument1, - PVOID *SystemArgument2); - -NTSTATUS -STDCALL -PspInitializeProcessSecurity(PEPROCESS Process, - PEPROCESS Parent OPTIONAL); - - -VOID -STDCALL -PspSystemThreadStartup(PKSTART_ROUTINE StartRoutine, - PVOID StartContext); - -NTSTATUS -PsInitializeIdleOrFirstThread ( - PEPROCESS Process, - PETHREAD* ThreadPtr, - PKSTART_ROUTINE StartRoutine, - KPROCESSOR_MODE AccessMode, - BOOLEAN First); -/* - * Internal thread priorities, added by Phillip Susi - * TODO: rebalence these to make use of all priorities... the ones above 16 - * can not all be used right now - */ -#define PROCESS_PRIO_IDLE 3 -#define PROCESS_PRIO_NORMAL 8 -#define PROCESS_PRIO_HIGH 13 -#define PROCESS_PRIO_RT 18 - - -VOID STDCALL PiDeleteProcess(PVOID ObjectBody); - -VOID -STDCALL -PspReapRoutine(PVOID Context); - -VOID -STDCALL -PspExitThread(NTSTATUS ExitStatus); - extern LIST_ENTRY PspReaperListHead; extern WORK_QUEUE_ITEM PspReaperWorkItem; extern BOOLEAN PspReaping; @@ -119,38 +20,273 @@ extern FAST_MUTEX PspActiveProcessMutex; extern LARGE_INTEGER ShortPsLockDelay, PsLockTimeout; extern EPROCESS_QUOTA_BLOCK PspDefaultQuotaBlock; +/* Top level irp definitions. */ +#define FSRTL_FSP_TOP_LEVEL_IRP (0x01) +#define FSRTL_CACHE_TOP_LEVEL_IRP (0x02) +#define FSRTL_MOD_WRITE_TOP_LEVEL_IRP (0x03) +#define FSRTL_FAST_IO_TOP_LEVEL_IRP (0x04) +#define FSRTL_MAX_TOP_LEVEL_IRP_FLAG (0x04) + +#define MAX_PROCESS_NOTIFY_ROUTINE_COUNT 8 +#define MAX_LOAD_IMAGE_NOTIFY_ROUTINE_COUNT 8 + +VOID +NTAPI +PiInitDefaultLocale(VOID); + +VOID +NTAPI +PiInitProcessManager(VOID); + +VOID +NTAPI +PiShutdownProcessManager(VOID); + +VOID +NTAPI +PsInitThreadManagment(VOID); + +VOID +NTAPI +PsInitProcessManagment(VOID); + +VOID +NTAPI +PsInitIdleThread(VOID); + +VOID +NTAPI +PiTerminateProcessThreads( + PEPROCESS Process, + NTSTATUS ExitStatus +); + +VOID +NTAPI +PsTerminateCurrentThread(NTSTATUS ExitStatus); + +VOID +NTAPI +PsTerminateOtherThread( + PETHREAD Thread, + NTSTATUS ExitStatus +); + +VOID +NTAPI +PsReleaseThread(PETHREAD Thread); + +VOID +NTAPI +PsBeginThread( + PKSTART_ROUTINE StartRoutine, + PVOID StartContext +); + +VOID +NTAPI +PsBeginThreadWithContextInternal(VOID); + +VOID +NTAPI +PiKillMostProcesses(VOID); + +NTSTATUS +STDCALL +PiTerminateProcess( + PEPROCESS Process, + NTSTATUS ExitStatus +); + +VOID +NTAPI +PiInitApcManagement(VOID); + VOID STDCALL -PspTerminateThreadByPointer(PETHREAD Thread, - NTSTATUS ExitStatus); +PiDeleteThread(PVOID ObjectBody); -VOID PsUnfreezeOtherThread(PETHREAD Thread); -VOID PsFreezeOtherThread(PETHREAD Thread); -VOID PsFreezeProcessThreads(PEPROCESS Process); -VOID PsUnfreezeProcessThreads(PEPROCESS Process); -ULONG PsEnumThreadsByProcess(PEPROCESS Process); -PEPROCESS STDCALL PsGetNextProcess(PEPROCESS OldProcess); VOID +NTAPI +PsReapThreads(VOID); + +VOID +NTAPI +PsInitializeThreadReaper(VOID); + +VOID +NTAPI +PsQueueThreadReap(PETHREAD Thread); + +NTSTATUS +NTAPI +PsInitializeThread( + PEPROCESS Process, + PETHREAD* ThreadPtr, + POBJECT_ATTRIBUTES ObjectAttributes, + KPROCESSOR_MODE AccessMode, + BOOLEAN First +); + +PACCESS_TOKEN +STDCALL +PsReferenceEffectiveToken( + PETHREAD Thread, + PTOKEN_TYPE TokenType, + PUCHAR b, + PSECURITY_IMPERSONATION_LEVEL Level +); + +NTSTATUS +STDCALL +PsOpenTokenOfProcess( + HANDLE ProcessHandle, + PACCESS_TOKEN* Token +); + +VOID +STDCALL +PspTerminateProcessThreads( + PEPROCESS Process, + NTSTATUS ExitStatus +); + +NTSTATUS +NTAPI +PsSuspendThread( + PETHREAD Thread, + PULONG PreviousCount +); + +NTSTATUS +NTAPI +PsResumeThread( + PETHREAD Thread, + PULONG PreviousCount +); + +NTSTATUS +STDCALL +PspAssignPrimaryToken( + PEPROCESS Process, + HANDLE TokenHandle +); + +VOID +STDCALL +PsExitSpecialApc( + PKAPC Apc, + PKNORMAL_ROUTINE *NormalRoutine, + PVOID *NormalContext, + PVOID *SystemArgument1, + PVOID *SystemArgument2 +); + +NTSTATUS +STDCALL +PspInitializeProcessSecurity( + PEPROCESS Process, + PEPROCESS Parent OPTIONAL +); + +VOID +STDCALL +PspSystemThreadStartup( + PKSTART_ROUTINE StartRoutine, + PVOID StartContext +); + +NTSTATUS +NTAPI +PsInitializeIdleOrFirstThread( + PEPROCESS Process, + PETHREAD* ThreadPtr, + PKSTART_ROUTINE StartRoutine, + KPROCESSOR_MODE AccessMode, + BOOLEAN First +); + +VOID +STDCALL +PiDeleteProcess(PVOID ObjectBody); + +VOID +STDCALL +PspReapRoutine(PVOID Context); + +VOID +STDCALL +PspExitThread(NTSTATUS ExitStatus); + +VOID +STDCALL +PspTerminateThreadByPointer( + PETHREAD Thread, + NTSTATUS ExitStatus +); + +VOID +NTAPI +PsUnfreezeOtherThread(PETHREAD Thread); + +VOID +NTAPI +PsFreezeOtherThread(PETHREAD Thread); + +VOID +NTAPI +PsFreezeProcessThreads(PEPROCESS Process); + +VOID +NTAPI +PsUnfreezeProcessThreads(PEPROCESS Process); + +ULONG +NTAPI +PsEnumThreadsByProcess(PEPROCESS Process); + +PEPROCESS +STDCALL +PsGetNextProcess(PEPROCESS OldProcess); + +VOID +NTAPI PsApplicationProcessorInit(VOID); + VOID +NTAPI PsPrepareForApplicationProcessorInit(ULONG Id); -VOID STDCALL + +VOID +STDCALL PsIdleThreadMain(PVOID Context); -VOID STDCALL -PiSuspendThreadRundownRoutine(PKAPC Apc); -VOID STDCALL -PiSuspendThreadKernelRoutine(PKAPC Apc, - PKNORMAL_ROUTINE* NormalRoutine, - PVOID* NormalContext, - PVOID* SystemArgument1, - PVOID* SystemArguemnt2); -VOID STDCALL -PiSuspendThreadNormalRoutine(PVOID NormalContext, - PVOID SystemArgument1, - PVOID SystemArgument2); VOID +STDCALL +PiSuspendThreadRundownRoutine(PKAPC Apc); + +VOID +STDCALL +PiSuspendThreadKernelRoutine( + PKAPC Apc, + PKNORMAL_ROUTINE* NormalRoutine, + PVOID* NormalContext, + PVOID* SystemArgument1, + PVOID* SystemArguemnt2 +); + +VOID +STDCALL +PiSuspendThreadNormalRoutine( + PVOID NormalContext, + PVOID SystemArgument1, + PVOID SystemArgument2 +); + +VOID +NTAPI PsInitialiseSuspendImplementation(VOID); + NTSTATUS STDCALL PspExitProcess(PEPROCESS Process); @@ -163,37 +299,52 @@ VOID STDCALL PspDeleteThread(PVOID ObjectBody); -extern LONG PiNrThreadsAwaitingReaping; NTSTATUS -PsInitWin32Thread (PETHREAD Thread); +NTAPI +PsInitWin32Thread(PETHREAD Thread); VOID -PsTerminateWin32Process (PEPROCESS Process); +NTAPI +PsTerminateWin32Process(PEPROCESS Process); VOID -PsTerminateWin32Thread (PETHREAD Thread); +NTAPI +PsTerminateWin32Thread(PETHREAD Thread); VOID +NTAPI PsInitialiseW32Call(VOID); VOID STDCALL -PspRunCreateThreadNotifyRoutines(PETHREAD, BOOLEAN); +PspRunCreateThreadNotifyRoutines( + PETHREAD, + BOOLEAN +); VOID STDCALL -PspRunCreateProcessNotifyRoutines(PEPROCESS, BOOLEAN); +PspRunCreateProcessNotifyRoutines( + PEPROCESS, + BOOLEAN +); VOID STDCALL PspRunLegoRoutine(IN PKTHREAD Thread); -VOID INIT_FUNCTION PsInitJobManagment(VOID); +VOID +NTAPI +INIT_FUNCTION +PsInitJobManagment(VOID); VOID STDCALL -PspInheritQuota(PEPROCESS Process, PEPROCESS ParentProcess); +PspInheritQuota( + PEPROCESS Process, + PEPROCESS ParentProcess +); VOID STDCALL @@ -214,17 +365,15 @@ NTSTATUS STDCALL PspGetSystemDllEntryPoints(VOID); -/* CLIENT ID */ +NTSTATUS +NTAPI +PsLockProcess( + PEPROCESS Process, + BOOLEAN Timeout +); -NTSTATUS PsLockProcess(PEPROCESS Process, BOOLEAN Timeout); -VOID PsUnlockProcess(PEPROCESS Process); - -#define ETHREAD_TO_KTHREAD(pEThread) (&(pEThread)->Tcb) -#define KTHREAD_TO_ETHREAD(pKThread) (CONTAINING_RECORD((pKThread), ETHREAD, Tcb)) -#define EPROCESS_TO_KPROCESS(pEProcess) (&(pEProcess)->Pcb) -#define KPROCESS_TO_EPROCESS(pKProcess) (CONTAINING_RECORD((pKProcess), EPROCESS, Pcb)) - -#define MAX_PROCESS_NOTIFY_ROUTINE_COUNT 8 -#define MAX_LOAD_IMAGE_NOTIFY_ROUTINE_COUNT 8 +VOID +NTAPI +PsUnlockProcess(PEPROCESS Process); #endif /* __INCLUDE_INTERNAL_PS_H */ diff --git a/reactos/ntoskrnl/include/internal/se.h b/reactos/ntoskrnl/include/internal/se.h index 34d38ae2428..55be0385708 100644 --- a/reactos/ntoskrnl/include/internal/se.h +++ b/reactos/ntoskrnl/include/internal/se.h @@ -83,114 +83,178 @@ extern PSECURITY_DESCRIPTOR SePublicOpenUnrestrictedSd; extern PSECURITY_DESCRIPTOR SeSystemDefaultSd; extern PSECURITY_DESCRIPTOR SeUnrestrictedSd; - /* Functions */ - -BOOLEAN SeInit1(VOID); -BOOLEAN SeInit2(VOID); -BOOLEAN SeInitSRM(VOID); - -VOID SepInitLuid(VOID); -VOID SepInitPrivileges(VOID); -BOOLEAN SepInitSecurityIDs(VOID); -BOOLEAN SepInitDACLs(VOID); -BOOLEAN SepInitSDs(VOID); - -VOID SeDeassignPrimaryToken(struct _EPROCESS *Process); - -NTSTATUS STDCALL -SepCreateImpersonationTokenDacl(PTOKEN Token, - PTOKEN PrimaryToken, - PACL *Dacl); - -VOID SepInitializeTokenImplementation(VOID); - -PTOKEN STDCALL SepCreateSystemProcessToken(VOID); - -NTSTATUS SeExchangePrimaryToken(struct _EPROCESS* Process, - PACCESS_TOKEN NewToken, - PACCESS_TOKEN* OldTokenP); - -NTSTATUS -SeCaptureLuidAndAttributesArray(PLUID_AND_ATTRIBUTES Src, - ULONG PrivilegeCount, - KPROCESSOR_MODE PreviousMode, - PLUID_AND_ATTRIBUTES AllocatedMem, - ULONG AllocatedLength, - POOL_TYPE PoolType, - ULONG d, - PLUID_AND_ATTRIBUTES* Dest, - PULONG Length); - -VOID -SeReleaseLuidAndAttributesArray(PLUID_AND_ATTRIBUTES Privilege, - KPROCESSOR_MODE PreviousMode, - ULONG a); +BOOLEAN +NTAPI +SeInit1(VOID); BOOLEAN -SepPrivilegeCheck(PTOKEN Token, - PLUID_AND_ATTRIBUTES Privileges, - ULONG PrivilegeCount, - ULONG PrivilegeControl, - KPROCESSOR_MODE PreviousMode); +NTAPI +SeInit2(VOID); + +BOOLEAN +NTAPI +SeInitSRM(VOID); + +VOID +NTAPI +SepInitLuid(VOID); + +VOID +NTAPI +SepInitPrivileges(VOID); + +BOOLEAN +NTAPI +SepInitSecurityIDs(VOID); + +BOOLEAN +NTAPI +SepInitDACLs(VOID); + +BOOLEAN +NTAPI +SepInitSDs(VOID); + +VOID +NTAPI +SeDeassignPrimaryToken(struct _EPROCESS *Process); NTSTATUS STDCALL -SepDuplicateToken(PTOKEN Token, - POBJECT_ATTRIBUTES ObjectAttributes, - BOOLEAN EffectiveOnly, - TOKEN_TYPE TokenType, - SECURITY_IMPERSONATION_LEVEL Level, - KPROCESSOR_MODE PreviousMode, - PTOKEN* NewAccessToken); - -NTSTATUS -SepCaptureSecurityQualityOfService(IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, - IN KPROCESSOR_MODE AccessMode, - IN POOL_TYPE PoolType, - IN BOOLEAN CaptureIfKernel, - OUT PSECURITY_QUALITY_OF_SERVICE *CapturedSecurityQualityOfService, - OUT PBOOLEAN Present); +SepCreateImpersonationTokenDacl( + PTOKEN Token, + PTOKEN PrimaryToken, + PACL *Dacl +); VOID -SepReleaseSecurityQualityOfService(IN PSECURITY_QUALITY_OF_SERVICE CapturedSecurityQualityOfService OPTIONAL, - IN KPROCESSOR_MODE AccessMode, - IN BOOLEAN CaptureIfKernel); +NTAPI +SepInitializeTokenImplementation(VOID); + +PTOKEN +STDCALL +SepCreateSystemProcessToken(VOID); NTSTATUS -SepCaptureSid(IN PSID InputSid, - IN KPROCESSOR_MODE AccessMode, - IN POOL_TYPE PoolType, - IN BOOLEAN CaptureIfKernel, - OUT PSID *CapturedSid); - -VOID -SepReleaseSid(IN PSID CapturedSid, - IN KPROCESSOR_MODE AccessMode, - IN BOOLEAN CaptureIfKernel); +NTAPI +SeExchangePrimaryToken( + struct _EPROCESS* Process, + PACCESS_TOKEN NewToken, + PACCESS_TOKEN* OldTokenP +); NTSTATUS -SepCaptureAcl(IN PACL InputAcl, - IN KPROCESSOR_MODE AccessMode, - IN POOL_TYPE PoolType, - IN BOOLEAN CaptureIfKernel, - OUT PACL *CapturedAcl); +NTAPI +SeCaptureLuidAndAttributesArray( + PLUID_AND_ATTRIBUTES Src, + ULONG PrivilegeCount, + KPROCESSOR_MODE PreviousMode, + PLUID_AND_ATTRIBUTES AllocatedMem, + ULONG AllocatedLength, + POOL_TYPE PoolType, + ULONG d, + PLUID_AND_ATTRIBUTES* Dest, + PULONG Length +); VOID -SepReleaseAcl(IN PACL CapturedAcl, - IN KPROCESSOR_MODE AccessMode, - IN BOOLEAN CaptureIfKernel); +NTAPI +SeReleaseLuidAndAttributesArray( + PLUID_AND_ATTRIBUTES Privilege, + KPROCESSOR_MODE PreviousMode, + ULONG a +); + +BOOLEAN +NTAPI +SepPrivilegeCheck( + PTOKEN Token, + PLUID_AND_ATTRIBUTES Privileges, + ULONG PrivilegeCount, + ULONG PrivilegeControl, + KPROCESSOR_MODE PreviousMode +); NTSTATUS STDCALL -SeDefaultObjectMethod(PVOID Object, - SECURITY_OPERATION_CODE OperationType, - SECURITY_INFORMATION SecurityInformation, - PSECURITY_DESCRIPTOR NewSecurityDescriptor, - PULONG ReturnLength, - PSECURITY_DESCRIPTOR *OldSecurityDescriptor, - POOL_TYPE PoolType, - PGENERIC_MAPPING GenericMapping); +SepDuplicateToken( + PTOKEN Token, + POBJECT_ATTRIBUTES ObjectAttributes, + BOOLEAN EffectiveOnly, + TOKEN_TYPE TokenType, + SECURITY_IMPERSONATION_LEVEL Level, + KPROCESSOR_MODE PreviousMode, + PTOKEN* NewAccessToken +); + +NTSTATUS +NTAPI +SepCaptureSecurityQualityOfService( + IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, + IN KPROCESSOR_MODE AccessMode, + IN POOL_TYPE PoolType, + IN BOOLEAN CaptureIfKernel, + OUT PSECURITY_QUALITY_OF_SERVICE *CapturedSecurityQualityOfService, + OUT PBOOLEAN Present +); + +VOID +NTAPI +SepReleaseSecurityQualityOfService( + IN PSECURITY_QUALITY_OF_SERVICE CapturedSecurityQualityOfService OPTIONAL, + IN KPROCESSOR_MODE AccessMode, + IN BOOLEAN CaptureIfKernel +); + +NTSTATUS +NTAPI +SepCaptureSid( + IN PSID InputSid, + IN KPROCESSOR_MODE AccessMode, + IN POOL_TYPE PoolType, + IN BOOLEAN CaptureIfKernel, + OUT PSID *CapturedSid +); + +VOID +NTAPI +SepReleaseSid( + IN PSID CapturedSid, + IN KPROCESSOR_MODE AccessMode, + IN BOOLEAN CaptureIfKernel +); + +NTSTATUS +NTAPI +SepCaptureAcl( + IN PACL InputAcl, + IN KPROCESSOR_MODE AccessMode, + IN POOL_TYPE PoolType, + IN BOOLEAN CaptureIfKernel, + OUT PACL *CapturedAcl +); + +VOID +NTAPI +SepReleaseAcl( + IN PACL CapturedAcl, + IN KPROCESSOR_MODE AccessMode, + IN BOOLEAN CaptureIfKernel +); + +NTSTATUS +STDCALL +SeDefaultObjectMethod( + PVOID Object, + SECURITY_OPERATION_CODE OperationType, + SECURITY_INFORMATION SecurityInformation, + PSECURITY_DESCRIPTOR NewSecurityDescriptor, + PULONG ReturnLength, + PSECURITY_DESCRIPTOR *OldSecurityDescriptor, + POOL_TYPE PoolType, + PGENERIC_MAPPING GenericMapping +); #define SepAcquireTokenLockExclusive(Token) \ do { \ diff --git a/reactos/ntoskrnl/include/internal/test.h b/reactos/ntoskrnl/include/internal/test.h index a2fe53bc4ff..955fa7944e6 100644 --- a/reactos/ntoskrnl/include/internal/test.h +++ b/reactos/ntoskrnl/include/internal/test.h @@ -1,48 +1,39 @@ #ifndef __NTOSKRNL_INCLUDE_INTERNAL_TEST_H #define __NTOSKRNL_INCLUDE_INTERNAL_TEST_H -typedef VOID STDCALL +typedef VOID +STDCALL PExFreePool(PVOID Block); -typedef PMDL STDCALL -PMmCreateMdl(PMDL Mdl, - PVOID Base, - ULONG Length); +typedef PMDL +STDCALL +PMmCreateMdl( + PMDL Mdl, + PVOID Base, + ULONG Length +); -typedef VOID STDCALL -PMmProbeAndLockPages(PMDL Mdl, - KPROCESSOR_MODE AccessMode, - LOCK_OPERATION Operation); +typedef VOID +STDCALL +PMmProbeAndLockPages( + PMDL Mdl, + KPROCESSOR_MODE AccessMode, + LOCK_OPERATION Operation +); -typedef VOID FASTCALL +typedef VOID +FASTCALL PObDereferenceObject(PVOID Object); -typedef NTSTATUS STDCALL -PObReferenceObjectByHandle(HANDLE Handle, - ACCESS_MASK DesiredAccess, - POBJECT_TYPE ObjectType, - KPROCESSOR_MODE AccessMode, - PVOID* Object, - POBJECT_HANDLE_INFORMATION HandleInformation); - - -NTSTATUS STDCALL -MiLockVirtualMemory(HANDLE ProcessHandle, - PVOID BaseAddress, - ULONG NumberOfBytesToLock, - PULONG NumberOfBytesLocked, - PObReferenceObjectByHandle pObReferenceObjectByHandle, - PMmCreateMdl pMmCreateMdl, - PObDereferenceObject pObDereferenceObject, - PMmProbeAndLockPages pMmProbeAndLockPages, - PExFreePool pExFreePool); - -NTSTATUS FASTCALL -MiQueryVirtualMemory (IN HANDLE ProcessHandle, - IN PVOID Address, - IN CINT VirtualMemoryInformationClass, - OUT PVOID VirtualMemoryInformation, - IN ULONG Length, - OUT PULONG ResultLength); +typedef NTSTATUS +STDCALL +PObReferenceObjectByHandle( + HANDLE Handle, + ACCESS_MASK DesiredAccess, + POBJECT_TYPE ObjectType, + KPROCESSOR_MODE AccessMode, + PVOID* Object, + POBJECT_HANDLE_INFORMATION HandleInformation +); #endif /* __NTOSKRNL_INCLUDE_INTERNAL_TEST_H */ diff --git a/reactos/ntoskrnl/include/internal/v86m.h b/reactos/ntoskrnl/include/internal/v86m.h index e8a7d58aaec..78384f89157 100644 --- a/reactos/ntoskrnl/include/internal/v86m.h +++ b/reactos/ntoskrnl/include/internal/v86m.h @@ -10,73 +10,6 @@ #ifndef __NTOSKRNL_INCLUDE_INTERNAL_V86M_H #define __NTOSKRNL_INCLUDE_INTERNAL_V86M_H -/* Emulate cli/sti instructions */ -#define KV86M_EMULATE_CLI_STI (0x1) -/* Allow the v86 mode code to access i/o ports */ -#define KV86M_ALLOW_IO_PORT_ACCESS (0x2) -typedef struct _KV86M_REGISTERS -{ - /* - * General purpose registers - */ - ULONG Ebp; - ULONG Edi; - ULONG Esi; - ULONG Edx; - ULONG Ecx; - ULONG Ebx; - ULONG Eax; - ULONG Ds; - ULONG Es; - ULONG Fs; - ULONG Gs; - - /* - * Control registers - */ - ULONG Eip; - ULONG Cs; - ULONG Eflags; - ULONG Esp; - ULONG Ss; - - /* - * Control structures - */ - ULONG RecoveryAddress; - UCHAR RecoveryInstruction[4]; - ULONG Vif; - ULONG Flags; - PNTSTATUS PStatus; -} KV86M_REGISTERS, *PKV86M_REGISTERS; - -typedef struct _KV86M_TRAP_FRAME -{ - KTRAP_FRAME Tf; - - ULONG SavedExceptionStack; - - /* - * These are put on the top of the stack by the routine that entered - * v86 mode so the exception handlers can find the control information - */ - struct _KV86M_REGISTERS* regs; - ULONG orig_ebp; -} KV86M_TRAP_FRAME, *PKV86M_TRAP_FRAME; - -NTSTATUS -STDCALL -Ke386CallBios( - UCHAR Int, - PKV86M_REGISTERS Regs -); - -ULONG -KeV86Exception( - ULONG ExceptionNr, - PKTRAP_FRAME Tf, - ULONG address -); #endif /* __NTOSKRNL_INCLUDE_INTERNAL_V86M_H */ diff --git a/reactos/ntoskrnl/kdbg/kdb.c b/reactos/ntoskrnl/kdbg/kdb.c index f7d145627ae..3391e760428 100644 --- a/reactos/ntoskrnl/kdbg/kdb.c +++ b/reactos/ntoskrnl/kdbg/kdb.c @@ -194,7 +194,7 @@ KdbpOverwriteInstruction( /* Attach to the process */ if (CurrentProcess != Process) { - KeStackAttachProcess(EPROCESS_TO_KPROCESS(Process), &ApcState); + KeStackAttachProcess(&Process->Pcb, &ApcState); } /* Make the page writeable if it is read only. */ @@ -1066,7 +1066,7 @@ KdbpAttachToThread( } if (KdbOriginalProcess != Process) { - KeStackAttachProcess(EPROCESS_TO_KPROCESS(Process), &KdbApcState); + KeStackAttachProcess(&Process->Pcb, &KdbApcState); } KdbCurrentProcess = Process; } diff --git a/reactos/ntoskrnl/kdbg/kdb_cli.c b/reactos/ntoskrnl/kdbg/kdb_cli.c index ca1ebc921d7..8318edba434 100644 --- a/reactos/ntoskrnl/kdbg/kdb_cli.c +++ b/reactos/ntoskrnl/kdbg/kdb_cli.c @@ -1080,8 +1080,8 @@ KdbpCmdProc(ULONG Argc, PCHAR Argv[]) str2 = ""; } - State = ((Process->Pcb.State == PROCESS_STATE_TERMINATED) ? "Terminated" : - ((Process->Pcb.State == PROCESS_STATE_ACTIVE) ? "Active" : "Unknown")); + State = ((Process->Pcb.State == ProcessInMemory) ? "In Memory" : + ((Process->Pcb.State == ProcessOutOfMemory) ? "Out of Memory" : "In Transition")); KdbpPrint(" %s0x%08x %-10s %s%s\n", str1, @@ -1134,8 +1134,8 @@ KdbpCmdProc(ULONG Argc, PCHAR Argv[]) } } - State = ((Process->Pcb.State == PROCESS_STATE_TERMINATED) ? "Terminated" : - ((Process->Pcb.State == PROCESS_STATE_ACTIVE) ? "Active" : "Unknown")); + State = ((Process->Pcb.State == ProcessInMemory) ? "In Memory" : + ((Process->Pcb.State == ProcessOutOfMemory) ? "Out of Memory" : "In Transition")); KdbpPrint("%s" " PID: 0x%08x\n" " State: %s (0x%x)\n" diff --git a/reactos/ntoskrnl/kdbg/kdb_symbols.c b/reactos/ntoskrnl/kdbg/kdb_symbols.c index 047222abdeb..d54c1ecfaa7 100644 --- a/reactos/ntoskrnl/kdbg/kdb_symbols.c +++ b/reactos/ntoskrnl/kdbg/kdb_symbols.c @@ -527,7 +527,7 @@ KdbSymFreeProcessSymbols(IN PEPROCESS Process) CurrentProcess = PsGetCurrentProcess(); if (CurrentProcess != Process) { - KeAttachProcess(EPROCESS_TO_KPROCESS(Process)); + KeAttachProcess(&Process->Pcb); } Peb = Process->Peb; ASSERT(Peb); diff --git a/reactos/ntoskrnl/ke/process.c b/reactos/ntoskrnl/ke/process.c index 4d084f53b76..a4e1ab914d9 100644 --- a/reactos/ntoskrnl/ke/process.c +++ b/reactos/ntoskrnl/ke/process.c @@ -85,7 +85,7 @@ KeInitializeProcess(PKPROCESS Process, Process->DirectoryTableBase = DirectoryTableBase; Process->AutoAlignment = TRUE; Process->IopmOffset = 0xFFFF; - Process->State = PROCESS_STATE_ACTIVE; + Process->State = ProcessInMemory; /* Initialize the Thread List */ InitializeListHead(&Process->ThreadListHead); diff --git a/reactos/ntoskrnl/ke/usercall.c b/reactos/ntoskrnl/ke/usercall.c index 6464bb403a1..e158c8a78d2 100644 --- a/reactos/ntoskrnl/ke/usercall.c +++ b/reactos/ntoskrnl/ke/usercall.c @@ -46,7 +46,9 @@ typedef struct KSPIN_LOCK CallbackStackListLock; static LIST_ENTRY CallbackStackListHead; -VOID INIT_FUNCTION +VOID +INIT_FUNCTION +NTAPI PsInitialiseW32Call(VOID) { InitializeListHead(&CallbackStackListHead); @@ -227,7 +229,7 @@ KeUserModeCallback(IN ULONG RoutineIndex, SavedState.SavedCallbackStack = Thread->Tcb.CallbackStack; SavedState.SavedExceptionStack = (PVOID)KeGetCurrentKPCR()->TSS->Esp0; if ((Thread->Tcb.NpxState & NPX_STATE_VALID) && - ETHREAD_TO_KTHREAD(Thread) != KeGetCurrentPrcb()->NpxThread) + &Thread->Tcb != KeGetCurrentPrcb()->NpxThread) { RtlCopyMemory((char*)NewStack + StackSize - sizeof(FX_SAVE_AREA), (char*)SavedState.SavedInitialStack - sizeof(FX_SAVE_AREA), diff --git a/reactos/ntoskrnl/ps/idle.c b/reactos/ntoskrnl/ps/idle.c index 60c60bc8722..545d4e1d74d 100644 --- a/reactos/ntoskrnl/ps/idle.c +++ b/reactos/ntoskrnl/ps/idle.c @@ -51,6 +51,7 @@ PsIdleThreadMain(PVOID Context) * creation until I can merge my fix for properly creating them. */ NTSTATUS +NTAPI PsInitializeIdleOrFirstThread(PEPROCESS Process, PETHREAD* ThreadPtr, PKSTART_ROUTINE StartRoutine, @@ -93,6 +94,7 @@ PsInitializeIdleOrFirstThread(PEPROCESS Process, */ VOID INIT_FUNCTION +NTAPI PsInitIdleThread(VOID) { PETHREAD IdleThread; diff --git a/reactos/ntoskrnl/ps/job.c b/reactos/ntoskrnl/ps/job.c index ec9d7bbe68f..1a033772580 100644 --- a/reactos/ntoskrnl/ps/job.c +++ b/reactos/ntoskrnl/ps/job.c @@ -57,6 +57,7 @@ PiDeleteJob ( PVOID ObjectBody ) VOID INIT_FUNCTION +NTAPI PsInitJobManagment ( VOID ) { UNICODE_STRING Name; @@ -81,6 +82,7 @@ PsInitJobManagment ( VOID ) } NTSTATUS +NTAPI PspAssignProcessToJob ( PEPROCESS Process, PEJOB Job) @@ -90,6 +92,7 @@ PspAssignProcessToJob ( } NTSTATUS +NTAPI PspTerminateJobObject ( PEJOB Job, KPROCESSOR_MODE AccessMode, diff --git a/reactos/ntoskrnl/ps/locale.c b/reactos/ntoskrnl/ps/locale.c index 1689a5a40ff..3fc6f493ed5 100644 --- a/reactos/ntoskrnl/ps/locale.c +++ b/reactos/ntoskrnl/ps/locale.c @@ -40,7 +40,9 @@ static LANGID PsInstallUILanguageId = 0; * Returns: * None. */ -VOID INIT_FUNCTION +VOID +INIT_FUNCTION +NTAPI PiInitDefaultLocale(VOID) { OBJECT_ATTRIBUTES ObjectAttributes; diff --git a/reactos/ntoskrnl/ps/process.c b/reactos/ntoskrnl/ps/process.c index c36006cc6d9..9901e475afc 100644 --- a/reactos/ntoskrnl/ps/process.c +++ b/reactos/ntoskrnl/ps/process.c @@ -30,6 +30,7 @@ LARGE_INTEGER ShortPsLockDelay, PsLockTimeout; /* INTERNAL FUNCTIONS *****************************************************************/ NTSTATUS +NTAPI PsLockProcess(PEPROCESS Process, BOOLEAN Timeout) { ULONG Attempts = 0; @@ -88,6 +89,7 @@ PsLockProcess(PEPROCESS Process, BOOLEAN Timeout) } VOID +NTAPI PsUnlockProcess(PEPROCESS Process) { PAGED_CODE(); @@ -331,7 +333,7 @@ PspCreateProcess(OUT PHANDLE ProcessHandle, /* Now initialize the Kernel Process */ DPRINT("Initialzing Kernel Process\n"); KeInitializeProcess(&Process->Pcb, - PROCESS_PRIO_NORMAL, + PROCESS_PRIORITY_NORMAL, Affinity, DirectoryTableBase); diff --git a/reactos/ntoskrnl/ps/psmgr.c b/reactos/ntoskrnl/ps/psmgr.c index 23615badafb..2f6cad59a00 100644 --- a/reactos/ntoskrnl/ps/psmgr.c +++ b/reactos/ntoskrnl/ps/psmgr.c @@ -49,14 +49,18 @@ VOID STDCALL PspKillMostProcesses(); /* FUNCTIONS ***************************************************************/ -VOID PiShutdownProcessManager(VOID) +VOID +NTAPI +PiShutdownProcessManager(VOID) { DPRINT("PiShutdownProcessManager()\n"); PspKillMostProcesses(); } -VOID INIT_FUNCTION +VOID +INIT_FUNCTION +NTAPI PiInitProcessManager(VOID) { PsInitJobManagment(); @@ -68,6 +72,7 @@ PiInitProcessManager(VOID) VOID INIT_FUNCTION +NTAPI PsInitClientIDManagment(VOID) { PspCidTable = ExCreateHandleTable(NULL); @@ -76,6 +81,7 @@ PsInitClientIDManagment(VOID) VOID INIT_FUNCTION +NTAPI PsInitThreadManagment(VOID) /* * FUNCTION: Initialize thread managment @@ -118,6 +124,7 @@ PsInitThreadManagment(VOID) VOID INIT_FUNCTION +NTAPI PsInitProcessManagment(VOID) { PKPROCESS KProcess; @@ -179,7 +186,7 @@ PsInitProcessManagment(VOID) PsIdleProcess->Pcb.Affinity = 0xFFFFFFFF; PsIdleProcess->Pcb.IopmOffset = 0xffff; - PsIdleProcess->Pcb.BasePriority = PROCESS_PRIO_IDLE; + PsIdleProcess->Pcb.BasePriority = PROCESS_PRIORITY_IDLE; PsIdleProcess->Pcb.QuantumReset = 6; InitializeListHead(&PsIdleProcess->Pcb.ThreadListHead); InitializeListHead(&PsIdleProcess->ThreadListHead); @@ -215,7 +222,7 @@ PsInitProcessManagment(VOID) RtlZeroMemory(PsInitialSystemProcess, sizeof(EPROCESS)); PsInitialSystemProcess->Pcb.Affinity = KeActiveProcessors; PsInitialSystemProcess->Pcb.IopmOffset = 0xffff; - PsInitialSystemProcess->Pcb.BasePriority = PROCESS_PRIO_NORMAL; + PsInitialSystemProcess->Pcb.BasePriority = PROCESS_PRIORITY_NORMAL; PsInitialSystemProcess->Pcb.QuantumReset = 6; InitializeListHead(&PsInitialSystemProcess->Pcb.ThreadListHead); KeInitializeDispatcherHeader(&PsInitialSystemProcess->Pcb.Header, diff --git a/reactos/ntoskrnl/ps/win32.c b/reactos/ntoskrnl/ps/win32.c index da11b158469..946e3f9d350 100644 --- a/reactos/ntoskrnl/ps/win32.c +++ b/reactos/ntoskrnl/ps/win32.c @@ -61,6 +61,7 @@ PsEstablishWin32Callouts(PW32_CALLOUT_DATA CalloutData) } NTSTATUS +NTAPI PsInitWin32Thread (PETHREAD Thread) { PEPROCESS Process; @@ -89,6 +90,7 @@ PsInitWin32Thread (PETHREAD Thread) VOID +NTAPI PsTerminateWin32Process (PEPROCESS Process) { if (Process->Win32Process == NULL) @@ -105,6 +107,7 @@ PsTerminateWin32Process (PEPROCESS Process) VOID +NTAPI PsTerminateWin32Thread (PETHREAD Thread) { if (Thread->Tcb.Win32Thread != NULL) @@ -278,7 +281,7 @@ NtCallbackReturn (PVOID Result, */ KeRaiseIrql(HIGH_LEVEL, &oldIrql); if ((Thread->Tcb.NpxState & NPX_STATE_VALID) && - ETHREAD_TO_KTHREAD(Thread) != KeGetCurrentPrcb()->NpxThread) + &Thread->Tcb != KeGetCurrentPrcb()->NpxThread) { RtlCopyMemory((char*)InitialStack - sizeof(FX_SAVE_AREA), (char*)Thread->Tcb.InitialStack - sizeof(FX_SAVE_AREA), diff --git a/reactos/ntoskrnl/se/acl.c b/reactos/ntoskrnl/se/acl.c index 725c33fed17..de9118301f5 100644 --- a/reactos/ntoskrnl/se/acl.c +++ b/reactos/ntoskrnl/se/acl.c @@ -26,7 +26,9 @@ PACL SeUnrestrictedDacl = NULL; /* FUNCTIONS ****************************************************************/ -BOOLEAN INIT_FUNCTION +BOOLEAN +INIT_FUNCTION +NTAPI SepInitDACLs(VOID) { ULONG AclLength; @@ -261,6 +263,7 @@ SepCreateImpersonationTokenDacl(PTOKEN Token, } NTSTATUS +NTAPI SepCaptureAcl(IN PACL InputAcl, IN KPROCESSOR_MODE AccessMode, IN POOL_TYPE PoolType, @@ -347,6 +350,7 @@ SepCaptureAcl(IN PACL InputAcl, } VOID +NTAPI SepReleaseAcl(IN PACL CapturedAcl, IN KPROCESSOR_MODE AccessMode, IN BOOLEAN CaptureIfKernel) diff --git a/reactos/ntoskrnl/se/luid.c b/reactos/ntoskrnl/se/luid.c index 6631c85c9b7..948264677f1 100644 --- a/reactos/ntoskrnl/se/luid.c +++ b/reactos/ntoskrnl/se/luid.c @@ -20,7 +20,9 @@ static LARGE_INTEGER LuidValue; /* FUNCTIONS *****************************************************************/ -VOID INIT_FUNCTION +VOID +INIT_FUNCTION +NTAPI SepInitLuid(VOID) { LUID DummyLuidValue = SYSTEM_LUID; @@ -32,6 +34,7 @@ SepInitLuid(VOID) NTSTATUS +NTAPI ExpAllocateLocallyUniqueId(OUT LUID *LocallyUniqueId) { LARGE_INTEGER NewLuid, PrevLuid; diff --git a/reactos/ntoskrnl/se/priv.c b/reactos/ntoskrnl/se/priv.c index f8019d18236..75472313307 100644 --- a/reactos/ntoskrnl/se/priv.c +++ b/reactos/ntoskrnl/se/priv.c @@ -47,7 +47,9 @@ LUID SeEnableDelegationPrivilege; /* FUNCTIONS ***************************************************************/ -VOID INIT_FUNCTION +VOID +INIT_FUNCTION +NTAPI SepInitPrivileges (VOID) { SeCreateTokenPrivilege.LowPart = SE_CREATE_TOKEN_PRIVILEGE; @@ -106,6 +108,7 @@ SepInitPrivileges (VOID) BOOLEAN +NTAPI SepPrivilegeCheck (PTOKEN Token, PLUID_AND_ATTRIBUTES Privileges, ULONG PrivilegeCount, @@ -166,6 +169,7 @@ SepPrivilegeCheck (PTOKEN Token, NTSTATUS +NTAPI SeCaptureLuidAndAttributesArray (PLUID_AND_ATTRIBUTES Src, ULONG PrivilegeCount, KPROCESSOR_MODE PreviousMode, @@ -221,6 +225,7 @@ SeCaptureLuidAndAttributesArray (PLUID_AND_ATTRIBUTES Src, VOID +NTAPI SeReleaseLuidAndAttributesArray (PLUID_AND_ATTRIBUTES Privilege, KPROCESSOR_MODE PreviousMode, ULONG a) diff --git a/reactos/ntoskrnl/se/sd.c b/reactos/ntoskrnl/se/sd.c index 5be026afcf4..5f17ab13856 100644 --- a/reactos/ntoskrnl/se/sd.c +++ b/reactos/ntoskrnl/se/sd.c @@ -24,7 +24,9 @@ PSECURITY_DESCRIPTOR SeUnrestrictedSd = NULL; /* FUNCTIONS ***************************************************************/ -BOOLEAN INIT_FUNCTION +BOOLEAN +INIT_FUNCTION +NTAPI SepInitSDs(VOID) { /* Create PublicDefaultSd */ @@ -180,6 +182,7 @@ SeSetWorldSecurityDescriptor(SECURITY_INFORMATION SecurityInformation, NTSTATUS +NTAPI SepCaptureSecurityQualityOfService(IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN KPROCESSOR_MODE AccessMode, IN POOL_TYPE PoolType, @@ -331,6 +334,7 @@ SepCaptureSecurityQualityOfService(IN POBJECT_ATTRIBUTES ObjectAttributes OPTIO VOID +NTAPI SepReleaseSecurityQualityOfService(IN PSECURITY_QUALITY_OF_SERVICE CapturedSecurityQualityOfService OPTIONAL, IN KPROCESSOR_MODE AccessMode, IN BOOLEAN CaptureIfKernel) diff --git a/reactos/ntoskrnl/se/semgr.c b/reactos/ntoskrnl/se/semgr.c index ac89f3c60e8..0b580206ad8 100644 --- a/reactos/ntoskrnl/se/semgr.c +++ b/reactos/ntoskrnl/se/semgr.c @@ -29,7 +29,9 @@ static BOOLEAN SepInitExports(VOID); /* FUNCTIONS ****************************************************************/ -BOOLEAN INIT_FUNCTION +BOOLEAN +INIT_FUNCTION +NTAPI SeInit1(VOID) { SepInitLuid(); @@ -55,7 +57,9 @@ SeInit1(VOID) } -BOOLEAN INIT_FUNCTION +BOOLEAN +INIT_FUNCTION +NTAPI SeInit2(VOID) { SepInitializeTokenImplementation(); @@ -65,6 +69,7 @@ SeInit2(VOID) BOOLEAN +NTAPI SeInitSRM(VOID) { OBJECT_ATTRIBUTES ObjectAttributes; diff --git a/reactos/ntoskrnl/se/sid.c b/reactos/ntoskrnl/se/sid.c index b98573ae6f0..38e4b867448 100644 --- a/reactos/ntoskrnl/se/sid.c +++ b/reactos/ntoskrnl/se/sid.c @@ -56,7 +56,9 @@ PSID SeAnonymousLogonSid = NULL; /* FUNCTIONS ****************************************************************/ -BOOLEAN INIT_FUNCTION +BOOLEAN +INIT_FUNCTION +NTAPI SepInitSecurityIDs(VOID) { ULONG SidLength0; @@ -221,6 +223,7 @@ SepInitSecurityIDs(VOID) } NTSTATUS +NTAPI SepCaptureSid(IN PSID InputSid, IN KPROCESSOR_MODE AccessMode, IN POOL_TYPE PoolType, @@ -309,6 +312,7 @@ SepCaptureSid(IN PSID InputSid, } VOID +NTAPI SepReleaseSid(IN PSID CapturedSid, IN KPROCESSOR_MODE AccessMode, IN BOOLEAN CaptureIfKernel) diff --git a/reactos/ntoskrnl/se/token.c b/reactos/ntoskrnl/se/token.c index 0559557c5f8..fd2066a07e1 100644 --- a/reactos/ntoskrnl/se/token.c +++ b/reactos/ntoskrnl/se/token.c @@ -68,18 +68,23 @@ static const INFORMATION_CLASS_INFO SeTokenInformationClass[] = { /* FUNCTIONS *****************************************************************/ -VOID SepFreeProxyData(PVOID ProxyData) +VOID +NTAPI +SepFreeProxyData(PVOID ProxyData) { UNIMPLEMENTED; } -NTSTATUS SepCopyProxyData(PVOID* Dest, PVOID Src) +NTSTATUS +NTAPI +SepCopyProxyData(PVOID* Dest, PVOID Src) { UNIMPLEMENTED; return(STATUS_NOT_IMPLEMENTED); } NTSTATUS +NTAPI SeExchangePrimaryToken(PEPROCESS Process, PACCESS_TOKEN NewTokenP, PACCESS_TOKEN* OldTokenP) @@ -109,6 +114,7 @@ SeExchangePrimaryToken(PEPROCESS Process, } VOID +NTAPI SeDeassignPrimaryToken(PEPROCESS Process) { PTOKEN OldToken; @@ -138,6 +144,7 @@ RtlLengthSidAndAttributes(ULONG Count, NTSTATUS +NTAPI SepFindPrimaryGroupAndDefaultOwner(PTOKEN Token, PSID PrimaryGroup, PSID DefaultOwner) @@ -557,7 +564,9 @@ SepDeleteToken(PVOID ObjectBody) } -VOID INIT_FUNCTION +VOID +INIT_FUNCTION +NTAPI SepInitializeTokenImplementation(VOID) { UNICODE_STRING Name;