From 52f8761d3aa1a251ded10eaeba4b6194256cb83d Mon Sep 17 00:00:00 2001 From: Filip Navara Date: Sat, 18 Jun 2005 18:32:29 +0000 Subject: [PATCH] Use W32API for NTOSKRNL. svn path=/trunk/; revision=16053 --- reactos/drivers/fs/vfat/vfat.h | 2 + reactos/hal/halx86/include/hal.h | 4 +- reactos/include/ddk/halfuncs.h | 4 -- reactos/include/ddk/ketypes.h | 8 ---- reactos/include/ddk/ntifs.h | 27 +++++------- reactos/include/ntos/halfuncs.h | 4 ++ reactos/include/ntos/krnltypes.h | 13 ++++++ reactos/ntoskrnl/cm/cm.h | 4 +- reactos/ntoskrnl/cm/ntfunc.c | 2 +- reactos/ntoskrnl/cm/regfile.c | 7 +--- reactos/ntoskrnl/ex/init.c | 4 +- reactos/ntoskrnl/ex/mutant.c | 4 ++ reactos/ntoskrnl/ex/sysinfo.c | 11 ++--- reactos/ntoskrnl/fs/fastio.c | 2 + reactos/ntoskrnl/fs/filelock.c | 2 +- reactos/ntoskrnl/fs/notify.c | 16 +++---- reactos/ntoskrnl/include/internal/cc.h | 4 -- reactos/ntoskrnl/include/internal/debug.h | 2 - reactos/ntoskrnl/include/internal/ex.h | 3 -- reactos/ntoskrnl/include/internal/ifs.h | 4 -- reactos/ntoskrnl/include/internal/io.h | 7 ---- reactos/ntoskrnl/include/internal/kd.h | 4 -- reactos/ntoskrnl/include/internal/kdb.h | 7 ---- reactos/ntoskrnl/include/internal/kdbochs.h | 12 ++---- reactos/ntoskrnl/include/internal/kdgdb.h | 4 -- reactos/ntoskrnl/include/internal/ke.h | 11 +---- reactos/ntoskrnl/include/internal/ldr.h | 4 -- reactos/ntoskrnl/include/internal/mm.h | 1 - reactos/ntoskrnl/include/internal/module.h | 6 --- reactos/ntoskrnl/include/internal/ntoskrnl.h | 6 --- reactos/ntoskrnl/include/internal/ob.h | 3 -- reactos/ntoskrnl/include/internal/po.h | 3 -- reactos/ntoskrnl/include/internal/ps.h | 8 +--- reactos/ntoskrnl/include/internal/trap.h | 2 - reactos/ntoskrnl/include/ntoskrnl.h | 22 ++++++---- reactos/ntoskrnl/io/disk.c | 1 - reactos/ntoskrnl/io/file.c | 9 ++-- reactos/ntoskrnl/io/iomgr.c | 15 +++---- reactos/ntoskrnl/io/irp.c | 1 + reactos/ntoskrnl/io/pnpmgr.c | 3 ++ reactos/ntoskrnl/io/resource.c | 4 +- reactos/ntoskrnl/kdbg/kdb_cli.c | 5 +-- reactos/ntoskrnl/kdbg/kdb_symbols.c | 3 -- reactos/ntoskrnl/ke/i386/kernel.c | 30 ++++++------- reactos/ntoskrnl/ke/kthread.c | 4 ++ reactos/ntoskrnl/mm/elf.inc.h | 4 ++ reactos/ntoskrnl/mm/elf32.c | 5 +++ reactos/ntoskrnl/mm/mm.c | 2 +- reactos/ntoskrnl/mm/pe.c | 4 ++ reactos/ntoskrnl/mm/section.c | 1 - reactos/ntoskrnl/ntoskrnl.xml | 3 ++ reactos/ntoskrnl/ob/handle.c | 4 +- reactos/ntoskrnl/ps/query.c | 2 +- reactos/ntoskrnl/ps/quota.c | 4 +- reactos/ntoskrnl/ps/security.c | 6 ++- reactos/ntoskrnl/rtl/i386/exception.c | 5 +-- reactos/ntoskrnl/rtl/misc.c | 28 ------------- reactos/ntoskrnl/se/access.c | 2 +- reactos/subsys/win32k/w32k.h | 3 ++ reactos/w32api/include/ddk/ntifs.h | 44 ++++++++++++++++++++ 60 files changed, 194 insertions(+), 225 deletions(-) diff --git a/reactos/drivers/fs/vfat/vfat.h b/reactos/drivers/fs/vfat/vfat.h index c1aff514e7a..a5631291452 100644 --- a/reactos/drivers/fs/vfat/vfat.h +++ b/reactos/drivers/fs/vfat/vfat.h @@ -17,11 +17,13 @@ NTSTATUS NTAPI RtlUnicodeStringToOemString(POEM_STRING, PCUNICODE_STRING, BOOLEA #endif #ifdef USE_ROS_CC_AND_FS +#ifndef __INCLUDE_DDK_NTIFS_H NTSTATUS STDCALL CcRosInitializeFileCache(PFILE_OBJECT, ULONG); NTSTATUS STDCALL CcRosReleaseFileCache(PFILE_OBJECT); #define FSCTL_ROS_QUERY_LCN_MAPPING CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 63, METHOD_BUFFERED, FILE_ANY_ACCESS) typedef struct _ROS_QUERY_LCN_MAPPING { LARGE_INTEGER LcnDiskOffset; } ROS_QUERY_LCN_MAPPING, *PROS_QUERY_LCN_MAPPING; #endif +#endif #define ROUND_UP(N, S) ((((N) + (S) - 1) / (S)) * (S)) #define ROUND_DOWN(N, S) ((N) - ((N) % (S))) diff --git a/reactos/hal/halx86/include/hal.h b/reactos/hal/halx86/include/hal.h index f1082ee8eb4..f26cf612a05 100644 --- a/reactos/hal/halx86/include/hal.h +++ b/reactos/hal/halx86/include/hal.h @@ -13,9 +13,7 @@ #include /* FIXME: NDK Headers */ -#include -#include -#include +#include /* Internal Kernel Headers */ //#include diff --git a/reactos/include/ddk/halfuncs.h b/reactos/include/ddk/halfuncs.h index 25170e7f2fc..f2ba7853500 100644 --- a/reactos/include/ddk/halfuncs.h +++ b/reactos/include/ddk/halfuncs.h @@ -136,10 +136,6 @@ HalSetRealTimeClock(PTIME_FIELDS Time); HalSetTimeIncrement */ -BOOLEAN STDCALL -HalStartNextProcessor(ULONG Unknown1, - ULONG Unknown2); - /* HalStartProfileInterrupt */ diff --git a/reactos/include/ddk/ketypes.h b/reactos/include/ddk/ketypes.h index 5087f76b158..bf4759cb88b 100644 --- a/reactos/include/ddk/ketypes.h +++ b/reactos/include/ddk/ketypes.h @@ -128,14 +128,6 @@ typedef struct _KEVENT DISPATCHER_HEADER Header; } KEVENT, *PKEVENT, *RESTRICTED_POINTER PRKEVENT; -typedef struct _KEVENT_PAIR -{ - CSHORT Type; - CSHORT Size; - KEVENT LowEvent; - KEVENT HighEvent; -} KEVENT_PAIR, *PKEVENT_PAIR; - typedef ULONG_PTR KSPIN_LOCK, *PKSPIN_LOCK; typedef struct _KDEVICE_QUEUE diff --git a/reactos/include/ddk/ntifs.h b/reactos/include/ddk/ntifs.h index ee280663093..86afadc4000 100644 --- a/reactos/include/ddk/ntifs.h +++ b/reactos/include/ddk/ntifs.h @@ -1,17 +1,19 @@ +#ifndef __INCLUDE_DDK_NTIFS_H +#define __INCLUDE_DDK_NTIFS_H + #ifdef __USE_W32API #include_next -NTSTATUS STDCALL -CcRosInitializeFileCache (PFILE_OBJECT FileObject, - ULONG CacheSegmentSize); -NTSTATUS STDCALL -CcRosReleaseFileCache (PFILE_OBJECT FileObject); - #else /* __USE_W32API */ -#ifndef __INCLUDE_DDK_NTIFS_H -#define __INCLUDE_DDK_NTIFS_H +#include +#include + +#include +#include + +#endif NTSTATUS STDCALL CcRosInitializeFileCache (PFILE_OBJECT FileObject, @@ -27,13 +29,4 @@ typedef struct _ROS_QUERY_LCN_MAPPING LARGE_INTEGER LcnDiskOffset; } ROS_QUERY_LCN_MAPPING, *PROS_QUERY_LCN_MAPPING; -#include - -#include - -#include -#include - #endif /* __INCLUDE_DDK_NTIFS_H */ - -#endif /* __USE_W32API */ diff --git a/reactos/include/ntos/halfuncs.h b/reactos/include/ntos/halfuncs.h index 26068c8994d..889b73a7be7 100755 --- a/reactos/include/ntos/halfuncs.h +++ b/reactos/include/ntos/halfuncs.h @@ -90,6 +90,10 @@ HalSystemVectorDispatchEntry(ULONG Unknown1, ULONG Unknown2, ULONG Unknown3); +BOOLEAN STDCALL +HalStartNextProcessor(ULONG Unknown1, + ULONG Unknown2); + VOID STDCALL IoAssignDriveLetters(IN struct _LOADER_PARAMETER_BLOCK *LoaderBlock, diff --git a/reactos/include/ntos/krnltypes.h b/reactos/include/ntos/krnltypes.h index f5c25509a9c..a2f3a84951c 100644 --- a/reactos/include/ntos/krnltypes.h +++ b/reactos/include/ntos/krnltypes.h @@ -119,5 +119,18 @@ typedef struct _KEXCEPTION_FRAME { ULONG64 Return; } KEXCEPTION_FRAME, *PKEXCEPTION_FRAME; +typedef struct _KEVENT_PAIR +{ + CSHORT Type; + CSHORT Size; + KEVENT LowEvent; + KEVENT HighEvent; +} KEVENT_PAIR, *PKEVENT_PAIR; + +typedef struct _RUNDOWN_DESCRIPTOR { + ULONG_PTR References; + KEVENT RundownEvent; +} RUNDOWN_DESCRIPTOR, *PRUNDOWN_DESCRIPTOR; + #endif /* __INCLUDE_NTOS_KRNLTYPES_H */ diff --git a/reactos/ntoskrnl/cm/cm.h b/reactos/ntoskrnl/cm/cm.h index 4fe8c9ff3bd..e81fd14ccb5 100644 --- a/reactos/ntoskrnl/cm/cm.h +++ b/reactos/ntoskrnl/cm/cm.h @@ -424,9 +424,9 @@ typedef enum _REG_NOTIFY_CLASS } REG_NOTIFY_CLASS, *PREG_NOTIFY_CLASS; /* Registry Callback Function */ -typedef NTSTATUS (*PEX_CALLBACK_FUNCTION ) ( +typedef NTSTATUS (STDCALL *PEX_CALLBACK_FUNCTION ) ( IN PVOID CallbackContext, - IN REG_NOTIFY_CLASS Argument1, + IN PVOID Argument1, IN PVOID Argument2 ); diff --git a/reactos/ntoskrnl/cm/ntfunc.c b/reactos/ntoskrnl/cm/ntfunc.c index e3933aecf02..1c3297d4a44 100644 --- a/reactos/ntoskrnl/cm/ntfunc.c +++ b/reactos/ntoskrnl/cm/ntfunc.c @@ -286,7 +286,7 @@ CmiCallRegisteredCallbacks(IN REG_NOTIFY_CLASS Argument1, ExReleaseFastMutex(&CmiCallbackLock); Status = CurrentCallback->Function(CurrentCallback->Context, - Argument1, + (PVOID)Argument1, Argument2); if(!NT_SUCCESS(Status)) { diff --git a/reactos/ntoskrnl/cm/regfile.c b/reactos/ntoskrnl/cm/regfile.c index 5a8c75751fd..5396a77390c 100644 --- a/reactos/ntoskrnl/cm/regfile.c +++ b/reactos/ntoskrnl/cm/regfile.c @@ -398,8 +398,6 @@ CmiCreateNewRegFile(HANDLE FileHandle) ExFreePool(Buffer); - ASSERTMSG(NT_SUCCESS(Status), ("Status: 0x%X\n", Status)); - if (!NT_SUCCESS(Status)) { return(Status); @@ -688,9 +686,8 @@ CmiImportHiveBins(PREGISTRY_HIVE Hive, return STATUS_REGISTRY_CORRUPT; } - ASSERTMSG((Bin->BinSize % REG_BLOCK_SIZE) == 0, - ("Bin size (0x%.08x) must be multiple of 4K\n", - Bin->BinSize)); + ASSERTMSG("Bin size must be multiple of 4K\n", + (Bin->BinSize % REG_BLOCK_SIZE) == 0); /* Allocate the hive block */ Hive->BlockList[BlockIndex].Bin = ExAllocatePool (PagedPool, diff --git a/reactos/ntoskrnl/ex/init.c b/reactos/ntoskrnl/ex/init.c index 2d12232d87c..765d0f85fed 100644 --- a/reactos/ntoskrnl/ex/init.c +++ b/reactos/ntoskrnl/ex/init.c @@ -248,8 +248,8 @@ ExecuteRuntimeAsserts(VOID) ASSERT(FIELD_OFFSET(KV86M_TRAP_FRAME, orig_ebp) == TF_ORIG_EBP); ASSERT(FIELD_OFFSET(KPCR, Tib.ExceptionList) == KPCR_EXCEPTION_LIST); ASSERT(FIELD_OFFSET(KPCR, Self) == KPCR_SELF); - ASSERT(FIELD_OFFSET(KPCR, PrcbData) + FIELD_OFFSET(KPRCB, CurrentThread) == KPCR_CURRENT_THREAD); - ASSERT(FIELD_OFFSET(KPCR, PrcbData) + FIELD_OFFSET(KPRCB, NpxThread) == KPCR_NPX_THREAD); + ASSERT(FIELD_OFFSET(KIPCR, PrcbData) + FIELD_OFFSET(KPRCB, CurrentThread) == KPCR_CURRENT_THREAD); + ASSERT(FIELD_OFFSET(KIPCR, PrcbData) + FIELD_OFFSET(KPRCB, NpxThread) == KPCR_NPX_THREAD); ASSERT(FIELD_OFFSET(KTSS, Esp0) == KTSS_ESP0); ASSERT(FIELD_OFFSET(KTSS, Eflags) == KTSS_EFLAGS); ASSERT(FIELD_OFFSET(KTSS, IoMapBase) == KTSS_IOMAPBASE); diff --git a/reactos/ntoskrnl/ex/mutant.c b/reactos/ntoskrnl/ex/mutant.c index 5e9ca894075..c5d0728fa0b 100644 --- a/reactos/ntoskrnl/ex/mutant.c +++ b/reactos/ntoskrnl/ex/mutant.c @@ -15,6 +15,10 @@ #define NDEBUG #include +#ifndef MUTANT_INCREMENT +#define MUTANT_INCREMENT 1 +#endif + POBJECT_TYPE ExMutantObjectType = NULL; static GENERIC_MAPPING ExpMutantMapping = { diff --git a/reactos/ntoskrnl/ex/sysinfo.c b/reactos/ntoskrnl/ex/sysinfo.c index 746abde7523..1288081e29c 100644 --- a/reactos/ntoskrnl/ex/sysinfo.c +++ b/reactos/ntoskrnl/ex/sysinfo.c @@ -415,9 +415,9 @@ QSI_DEF(SystemPerformanceInformation) Spi->IdleTime.QuadPart = TheIdleProcess->Pcb.KernelTime * 100000LL; - Spi->ReadTransferCount.QuadPart = IoReadTransferCount; - Spi->WriteTransferCount.QuadPart = IoWriteTransferCount; - Spi->OtherTransferCount.QuadPart = IoOtherTransferCount; + Spi->ReadTransferCount = IoReadTransferCount; + Spi->WriteTransferCount = IoWriteTransferCount; + Spi->OtherTransferCount = IoOtherTransferCount; Spi->ReadOperationCount = IoReadOperationCount; Spi->WriteOperationCount = IoWriteOperationCount; Spi->OtherOperationCount = IoOtherOperationCount; @@ -984,6 +984,9 @@ QSI_DEF(SystemFileCacheInformation) * ReqSize = sizeof (SYSTEM_CACHE_INFORMATION); return (STATUS_INFO_LENGTH_MISMATCH); } + + RtlZeroMemory(Sci, sizeof(SYSTEM_CACHE_INFORMATION)); + /* Return the Byte size not the page size. */ Sci->CurrentSize = MiMemoryConsumers[MC_CACHE].PagesUsed * PAGE_SIZE; @@ -993,8 +996,6 @@ QSI_DEF(SystemFileCacheInformation) Sci->PageFaultCount = 0; /* FIXME */ Sci->MinimumWorkingSet = 0; /* FIXME */ Sci->MaximumWorkingSet = 0; /* FIXME */ - Sci->TransitionSharedPages = 0; /* FIXME */ - Sci->TransitionSharedPagesPeak = 0; /* FIXME */ return (STATUS_SUCCESS); } diff --git a/reactos/ntoskrnl/fs/fastio.c b/reactos/ntoskrnl/fs/fastio.c index 71fe6d28e7a..3ab0836e28e 100644 --- a/reactos/ntoskrnl/fs/fastio.c +++ b/reactos/ntoskrnl/fs/fastio.c @@ -15,7 +15,9 @@ /* GLOBALS *******************************************************************/ +extern ULONG CcFastReadNotPossible; extern ULONG CcFastReadResourceMiss; +extern ULONG CcFastReadWait; extern ULONG CcFastReadNoWait; /* FUNCTIONS *****************************************************************/ diff --git a/reactos/ntoskrnl/fs/filelock.c b/reactos/ntoskrnl/fs/filelock.c index 577f2f88fcb..19516c43c04 100644 --- a/reactos/ntoskrnl/fs/filelock.c +++ b/reactos/ntoskrnl/fs/filelock.c @@ -1372,7 +1372,7 @@ FsRtlReleaseFile( if ((FcbHeader = (PFSRTL_COMMON_FCB_HEADER)FileObject->FsContext)) { /* Use a Resource Release */ - ExReleaseResource(FcbHeader->Resource); + ExReleaseResourceLite(FcbHeader->Resource); return; } diff --git a/reactos/ntoskrnl/fs/notify.c b/reactos/ntoskrnl/fs/notify.c index 527fd8c5290..7b12ba4cf0a 100644 --- a/reactos/ntoskrnl/fs/notify.c +++ b/reactos/ntoskrnl/fs/notify.c @@ -609,11 +609,11 @@ FsRtlpCopyName( if (Unicode) { - memcpy(CurrentEntry->Name, RelativeName->Buffer, RelativeName->Length); + memcpy(CurrentEntry->FileName, RelativeName->Buffer, RelativeName->Length); if (StreamName) { - CurrentEntry->Name[RelativeName->Length/sizeof(WCHAR)] = ':'; - memcpy(&CurrentEntry ->Name[(RelativeName->Length/sizeof(WCHAR))+1], + CurrentEntry->FileName[RelativeName->Length/sizeof(WCHAR)] = ':'; + memcpy(&CurrentEntry->FileName[(RelativeName->Length/sizeof(WCHAR))+1], StreamName->Buffer, StreamName->Length); } @@ -741,7 +741,7 @@ FsRtlNotifyFullReportChange ( (StreamName ? ((StreamName->Length * sizeof(WCHAR)) + sizeof(WCHAR)) : 0); } - RecordLen = FIELD_OFFSET(FILE_NOTIFY_INFORMATION, Name) + NameLenU; + RecordLen = FIELD_OFFSET(FILE_NOTIFY_INFORMATION, FileName) + NameLenU; if ((Irp = FsRtlpGetNextIrp(NotifyEntry))) { @@ -770,7 +770,7 @@ FsRtlNotifyFullReportChange ( if (CurrentEntry) { CurrentEntry->Action = Action; - CurrentEntry->NameLength = NameLenU; + CurrentEntry->FileNameLength = NameLenU; CurrentEntry->NextEntryOffset = 0; FsRtlpCopyName( @@ -816,7 +816,7 @@ FsRtlNotifyFullReportChange ( CurrentEntry = (PFILE_NOTIFY_INFORMATION)NotifyEntry->Buffer; CurrentEntry->Action = Action; - CurrentEntry->NameLength = NameLenU; + CurrentEntry->FileNameLength = NameLenU; CurrentEntry->NextEntryOffset = 0; FsRtlpCopyName(CurrentEntry, @@ -937,10 +937,10 @@ FsRtlNotifyReportChange ( VOID STDCALL FsRtlNotifyUninitializeSync ( - IN PNOTIFY_SYNC NotifySync + IN PNOTIFY_SYNC *NotifySync ) { - ExFreePool (NotifySync); + ExFreePool (*NotifySync); } /********************************************************************** diff --git a/reactos/ntoskrnl/include/internal/cc.h b/reactos/ntoskrnl/include/internal/cc.h index c3e4073d584..072500cc707 100644 --- a/reactos/ntoskrnl/include/internal/cc.h +++ b/reactos/ntoskrnl/include/internal/cc.h @@ -1,10 +1,6 @@ #ifndef __INCLUDE_INTERNAL_CC_H #define __INCLUDE_INTERNAL_CC_H -/* $Id$ */ -#include -#include - typedef struct _BCB { LIST_ENTRY BcbSegmentListHead; diff --git a/reactos/ntoskrnl/include/internal/debug.h b/reactos/ntoskrnl/include/internal/debug.h index 18a824c860a..985059b9150 100644 --- a/reactos/ntoskrnl/include/internal/debug.h +++ b/reactos/ntoskrnl/include/internal/debug.h @@ -18,8 +18,6 @@ #ifndef __INTERNAL_DEBUG #define __INTERNAL_DEBUG -#include - #if defined(_MSC_VER) && (_MSC_VER < 1300) /* TODO: Verify which version the MS compiler learned the __FUNCTION__ macro */ #define __FUNCTION__ "" diff --git a/reactos/ntoskrnl/include/internal/ex.h b/reactos/ntoskrnl/include/internal/ex.h index fd777075581..a55546910dd 100644 --- a/reactos/ntoskrnl/include/internal/ex.h +++ b/reactos/ntoskrnl/include/internal/ex.h @@ -5,9 +5,6 @@ #ifndef __NTOSKRNL_INCLUDE_INTERNAL_EXECUTIVE_H #define __NTOSKRNL_INCLUDE_INTERNAL_EXECUTIVE_H -#define NTOS_MODE_KERNEL -#include - typedef enum { wmCenter = 0, diff --git a/reactos/ntoskrnl/include/internal/ifs.h b/reactos/ntoskrnl/include/internal/ifs.h index 0d38543460d..e7527ee5962 100644 --- a/reactos/ntoskrnl/include/internal/ifs.h +++ b/reactos/ntoskrnl/include/internal/ifs.h @@ -1,9 +1,5 @@ #ifndef __INCLUDE_INTERNAL_IFS_H #define __INCLUDE_INTERNAL_IFS_H -/* $Id$ */ - -#include -#include /* Look for "FSrt" in mem view */ #define IFS_POOL_TAG 0x74725346 diff --git a/reactos/ntoskrnl/include/internal/io.h b/reactos/ntoskrnl/include/internal/io.h index 119b9382f12..f07bb26c715 100644 --- a/reactos/ntoskrnl/include/internal/io.h +++ b/reactos/ntoskrnl/include/internal/io.h @@ -29,11 +29,6 @@ #ifndef __NTOSKRNL_INCLUDE_INTERNAL_IO_H #define __NTOSKRNL_INCLUDE_INTERNAL_IO_H -#include -#include -#include - - #ifndef __USE_W32API #define DEVICE_TYPE_FROM_CTL_CODE(ctlCode) (((ULONG)(ctlCode&0xffff0000))>>16) #endif @@ -333,8 +328,6 @@ typedef struct _DEVICETREE_TRAVERSE_CONTEXT extern PDEVICE_NODE IopRootDeviceNode; -extern ULONG IoOtherOperationCount; -extern ULONGLONG IoOtherTransferCount; VOID PnpInit(VOID); diff --git a/reactos/ntoskrnl/include/internal/kd.h b/reactos/ntoskrnl/include/internal/kd.h index bba01153590..3c1301e4cd9 100644 --- a/reactos/ntoskrnl/include/internal/kd.h +++ b/reactos/ntoskrnl/include/internal/kd.h @@ -6,10 +6,6 @@ #ifndef __INCLUDE_INTERNAL_KERNEL_DEBUGGER_H #define __INCLUDE_INTERNAL_KERNEL_DEBUGGER_H -#include -#include -#include - struct _KD_DISPATCH_TABLE; #define KdPrintEx(_x_) DbgPrintEx _x_ diff --git a/reactos/ntoskrnl/include/internal/kdb.h b/reactos/ntoskrnl/include/internal/kdb.h index 6276011c987..4248c3bd70d 100644 --- a/reactos/ntoskrnl/include/internal/kdb.h +++ b/reactos/ntoskrnl/include/internal/kdb.h @@ -1,13 +1,6 @@ #ifndef NTOSKRNL_KDB_H #define NTOSKRNL_KDB_H -/* INCLUDES ******************************************************************/ - -#define NTOS_MODE_KERNEL -#include - -#include - /* DEFINES *******************************************************************/ #define TAG_KDBG (('K' << 24) | ('D' << 16) | ('B' << 8) | 'G') diff --git a/reactos/ntoskrnl/include/internal/kdbochs.h b/reactos/ntoskrnl/include/internal/kdbochs.h index 8dbd5f8697c..d0f9a237f49 100644 --- a/reactos/ntoskrnl/include/internal/kdbochs.h +++ b/reactos/ntoskrnl/include/internal/kdbochs.h @@ -6,16 +6,12 @@ #ifndef __INCLUDE_INTERNAL_KD_BOCHS_H #define __INCLUDE_INTERNAL_KD_BOCHS_H -#include -#include -#include - VOID STDCALL KdpBochsInit(struct _KD_DISPATCH_TABLE *DispatchTable, ULONG BootPhase); -VOID -STDCALL -KdpBochsDebugPrint(IN PCH Message); - +VOID +STDCALL +KdpBochsDebugPrint(IN PCH Message); + #endif /* __INCLUDE_INTERNAL_KD_BOCHS_H */ diff --git a/reactos/ntoskrnl/include/internal/kdgdb.h b/reactos/ntoskrnl/include/internal/kdgdb.h index e0127cdc55b..b8cf7ef38a8 100644 --- a/reactos/ntoskrnl/include/internal/kdgdb.h +++ b/reactos/ntoskrnl/include/internal/kdgdb.h @@ -6,10 +6,6 @@ #ifndef __INCLUDE_INTERNAL_KD_GDB_H #define __INCLUDE_INTERNAL_KD_GDB_H -#include -#include -#include - VOID STDCALL KdpGdbStubInit(struct _KD_DISPATCH_TABLE *DispatchTable, diff --git a/reactos/ntoskrnl/include/internal/ke.h b/reactos/ntoskrnl/include/internal/ke.h index dc14a3a025d..4b2501af546 100644 --- a/reactos/ntoskrnl/include/internal/ke.h +++ b/reactos/ntoskrnl/include/internal/ke.h @@ -22,11 +22,6 @@ /* INCLUDES *****************************************************************/ -#ifndef __ASM__ -#include -#include -#endif /* not __ASM__ */ - #include "arch/ke.h" /* INTERNAL KERNEL TYPES ****************************************************/ @@ -38,10 +33,6 @@ typedef struct _KPROCESS *PKPROCESS; typedef struct _DISPATCHER_HEADER *PDISPATCHER_HEADER; -#else - -typedef struct _KEVENT_PAIR *PKEVENT_PAIR; - #endif /* __USE_W32API */ typedef struct _HARDWARE_PTE_X86 { @@ -222,7 +213,7 @@ typedef struct _KPROCESS /* INTERNAL KERNEL FUNCTIONS ************************************************/ #ifdef __USE_W32API -struct _KPROCESS* KeGetCurrentProcess(VOID); +struct _KPROCESS* STDCALL KeGetCurrentProcess(VOID); VOID KeSetGdtSelector(ULONG Entry, ULONG Value1, ULONG Value2); #endif diff --git a/reactos/ntoskrnl/include/internal/ldr.h b/reactos/ntoskrnl/include/internal/ldr.h index 0b4e2b6431f..b779a4fe275 100644 --- a/reactos/ntoskrnl/include/internal/ldr.h +++ b/reactos/ntoskrnl/include/internal/ldr.h @@ -8,10 +8,6 @@ #ifndef __INCLUDE_INTERNAL_LDR_H #define __INCLUDE_INTERNAL_LDR_H -#include -#include -#include - #define KERNEL_MODULE_NAME L"ntoskrnl.exe" #define HAL_MODULE_NAME L"hal.dll" #define DRIVER_ROOT_NAME L"\\Driver\\" diff --git a/reactos/ntoskrnl/include/internal/mm.h b/reactos/ntoskrnl/include/internal/mm.h index 7f9b958cde8..497ee4bbf06 100644 --- a/reactos/ntoskrnl/include/internal/mm.h +++ b/reactos/ntoskrnl/include/internal/mm.h @@ -40,7 +40,6 @@ #ifndef __INCLUDE_INTERNAL_MM_H #define __INCLUDE_INTERNAL_MM_H -#include #include /* TYPES *********************************************************************/ diff --git a/reactos/ntoskrnl/include/internal/module.h b/reactos/ntoskrnl/include/internal/module.h index c116db9ac7b..e36b713e125 100644 --- a/reactos/ntoskrnl/include/internal/module.h +++ b/reactos/ntoskrnl/include/internal/module.h @@ -1,12 +1,6 @@ - #ifndef __MODULE_H #define __MODULE_H -#include -#include -#include -#include - typedef struct _MODULE_TEXT_SECTION { ULONG Base; diff --git a/reactos/ntoskrnl/include/internal/ntoskrnl.h b/reactos/ntoskrnl/include/internal/ntoskrnl.h index a124c668c14..30fe52c3006 100644 --- a/reactos/ntoskrnl/include/internal/ntoskrnl.h +++ b/reactos/ntoskrnl/include/internal/ntoskrnl.h @@ -7,12 +7,6 @@ #ifndef __ASM__ -#include -#define NTOS_MODE_KERNEL -#include - -#include "internal/ke.h" - /* * Use these to place a function in a specific section of the executable */ diff --git a/reactos/ntoskrnl/include/internal/ob.h b/reactos/ntoskrnl/include/internal/ob.h index 2e4f8ac1c0a..43bb708c2b7 100644 --- a/reactos/ntoskrnl/include/internal/ob.h +++ b/reactos/ntoskrnl/include/internal/ob.h @@ -9,9 +9,6 @@ #ifndef __INCLUDE_INTERNAL_OBJMGR_H #define __INCLUDE_INTERNAL_OBJMGR_H -#define NTOS_MODE_KERNEL -#include - #define TAG_OBJECT_TYPE TAG('O', 'b', 'j', 'T') struct _EPROCESS; diff --git a/reactos/ntoskrnl/include/internal/po.h b/reactos/ntoskrnl/include/internal/po.h index 19387ebba6f..d6d5d0d6e77 100644 --- a/reactos/ntoskrnl/include/internal/po.h +++ b/reactos/ntoskrnl/include/internal/po.h @@ -12,9 +12,6 @@ #ifndef __NTOSKRNL_INCLUDE_INTERNAL_PO_H #define __NTOSKRNL_INCLUDE_INTERNAL_PO_H -#include -#include - extern PDEVICE_NODE PopSystemPowerDeviceNode; VOID diff --git a/reactos/ntoskrnl/include/internal/ps.h b/reactos/ntoskrnl/include/internal/ps.h index 696bbe25946..2ac82ab698d 100644 --- a/reactos/ntoskrnl/include/internal/ps.h +++ b/reactos/ntoskrnl/include/internal/ps.h @@ -41,10 +41,6 @@ struct _EJOB; #ifndef __ASM__ -#include -#include -#include - extern LCID PsDefaultThreadLocaleId; extern LCID PsDefaultSystemLocaleId; @@ -187,7 +183,7 @@ typedef struct _ETHREAD *PETHREAD; * KERNEL VERSION: 5.2 * DOCUMENTATION: http://reactos.com/wiki/index.php/EPROCESS */ -struct _EPROCESS +typedef struct _EPROCESS { KPROCESS Pcb; /* 000 */ EX_PUSH_LOCK ProcessLock; /* 078 */ @@ -317,7 +313,7 @@ struct _EPROCESS /* FIXME MOVE TO AVL TREES */ MADDRESS_SPACE AddressSpace; /* 28C */ -}; +} EPROCESS; #include #define PROCESS_STATE_TERMINATED (1) diff --git a/reactos/ntoskrnl/include/internal/trap.h b/reactos/ntoskrnl/include/internal/trap.h index 8aaba64ab5a..96a772e8c4d 100644 --- a/reactos/ntoskrnl/include/internal/trap.h +++ b/reactos/ntoskrnl/include/internal/trap.h @@ -33,8 +33,6 @@ #ifndef __ASM__ -#include - typedef struct _KV86M_TRAP_FRAME { KTRAP_FRAME Tf; diff --git a/reactos/ntoskrnl/include/ntoskrnl.h b/reactos/ntoskrnl/include/ntoskrnl.h index bb130fcc0fd..063783d5747 100755 --- a/reactos/ntoskrnl/include/ntoskrnl.h +++ b/reactos/ntoskrnl/include/ntoskrnl.h @@ -1,34 +1,39 @@ #ifndef __INCLUDE_NTOSKRNL_H #define __INCLUDE_NTOSKRNL_H -#define __NO_CTYPE_INLINES +#define NTKERNELAPI /* include the ntoskrnl config.h file */ #include "config.h" +#include +#include +#include +#include + +#undef IO_TYPE_FILE +#define IO_TYPE_FILE 0x0F5L /* Temp Hack */ + #include #include #include #include +#include #include #include #include #include #include #include -#include #include #include #include #include +#include #include +#include #include #include -#include -#include -#include -#include -#include #include #include #include @@ -41,12 +46,11 @@ #include #include #include -#include #include +#include #include #include #include -#include #include #include #include diff --git a/reactos/ntoskrnl/io/disk.c b/reactos/ntoskrnl/io/disk.c index a74d8762f86..bad9aa62405 100644 --- a/reactos/ntoskrnl/io/disk.c +++ b/reactos/ntoskrnl/io/disk.c @@ -84,7 +84,6 @@ HAL_DISPATCH EXPORTED HalDispatchTable = (pHalMirrorVerify) NULL //HalMirrorVerify; }; - HAL_PRIVATE_DISPATCH EXPORTED HalPrivateDispatchTable = { HAL_PRIVATE_DISPATCH_VERSION diff --git a/reactos/ntoskrnl/io/file.c b/reactos/ntoskrnl/io/file.c index b497214e09a..ea4dca54f5e 100644 --- a/reactos/ntoskrnl/io/file.c +++ b/reactos/ntoskrnl/io/file.c @@ -14,6 +14,9 @@ #define NDEBUG #include +/* FIXME: Header mess */ +#undef CreateMailslot + /* GLOBALS *******************************************************************/ extern GENERIC_MAPPING IopFileMapping; @@ -1351,7 +1354,7 @@ NtCancelIoFile(IN HANDLE FileHandle, BOOLEAN OurIrpsInList = FALSE; LARGE_INTEGER Interval; - if ((ULONG_PTR)IoStatusBlock >= MmUserProbeAddress && + if ((ULONG_PTR)IoStatusBlock >= (ULONG_PTR)MmUserProbeAddress && KeGetPreviousMode() == UserMode) return STATUS_ACCESS_VIOLATION; @@ -2877,7 +2880,7 @@ NtSetInformationFile(HANDLE FileHandle, else { /* Reference the Port */ - Status = ObReferenceObjectByHandle(CompletionInfo->IoCompletionHandle, + Status = ObReferenceObjectByHandle(CompletionInfo->Port, IO_COMPLETION_MODIFY_STATE, IoCompletionType, PreviousMode, @@ -2891,7 +2894,7 @@ NtSetInformationFile(HANDLE FileHandle, TAG('I', 'o', 'C', 'p')); /* Set the Data */ - Context->Key = CompletionInfo->CompletionKey; + Context->Key = CompletionInfo->Key; Context->Port = Queue; FileObject->CompletionContext = Context; diff --git a/reactos/ntoskrnl/io/iomgr.c b/reactos/ntoskrnl/io/iomgr.c index 45f490d238b..995d79201d3 100644 --- a/reactos/ntoskrnl/io/iomgr.c +++ b/reactos/ntoskrnl/io/iomgr.c @@ -18,13 +18,13 @@ POBJECT_TYPE EXPORTED IoDeviceObjectType = NULL; POBJECT_TYPE EXPORTED IoFileObjectType = NULL; extern POBJECT_TYPE IoControllerObjectType; -ULONG EXPORTED IoReadOperationCount = 0; -ULONGLONG EXPORTED IoReadTransferCount = 0; -ULONG EXPORTED IoWriteOperationCount = 0; -ULONGLONG EXPORTED IoWriteTransferCount = 0; -ULONG IoOtherOperationCount = 0; -ULONGLONG IoOtherTransferCount = 0; -KSPIN_LOCK EXPORTED IoStatisticsLock = 0; +ULONG EXPORTED IoReadOperationCount = 0; +LARGE_INTEGER EXPORTED IoReadTransferCount = {{0, 0}}; +ULONG EXPORTED IoWriteOperationCount = 0; +LARGE_INTEGER EXPORTED IoWriteTransferCount = {{0, 0}}; +ULONG IoOtherOperationCount = 0; +LARGE_INTEGER IoOtherTransferCount = {{0, 0}}; +KSPIN_LOCK EXPORTED IoStatisticsLock = 0; GENERIC_MAPPING IopFileMapping = { FILE_GENERIC_READ, @@ -36,6 +36,7 @@ static KSPIN_LOCK CancelSpinLock; extern LIST_ENTRY ShutdownListHead; extern KSPIN_LOCK ShutdownListLock; extern NPAGED_LOOKASIDE_LIST IoCompletionPacketLookaside; +extern POBJECT_TYPE IoAdapterObjectType; NPAGED_LOOKASIDE_LIST IoLargeIrpLookaside; NPAGED_LOOKASIDE_LIST IoSmallIrpLookaside; diff --git a/reactos/ntoskrnl/io/irp.c b/reactos/ntoskrnl/io/irp.c index e641ccc44f6..2758e353c45 100644 --- a/reactos/ntoskrnl/io/irp.c +++ b/reactos/ntoskrnl/io/irp.c @@ -1033,6 +1033,7 @@ IoCallDriver (PDEVICE_OBJECT DeviceObject, PIRP Irp) /* * @implemented */ +#undef IoCompleteRequest VOID STDCALL IoCompleteRequest(PIRP Irp, diff --git a/reactos/ntoskrnl/io/pnpmgr.c b/reactos/ntoskrnl/io/pnpmgr.c index 391570dda1a..3776ccae898 100644 --- a/reactos/ntoskrnl/io/pnpmgr.c +++ b/reactos/ntoskrnl/io/pnpmgr.c @@ -15,6 +15,9 @@ #define NDEBUG #include +/* FIXME: Header mess */ +#undef DeviceCapabilities + /* GLOBALS *******************************************************************/ PDEVICE_NODE IopRootDeviceNode; diff --git a/reactos/ntoskrnl/io/resource.c b/reactos/ntoskrnl/io/resource.c index aea22acc1e2..a87fa5ac0c1 100644 --- a/reactos/ntoskrnl/io/resource.c +++ b/reactos/ntoskrnl/io/resource.c @@ -17,7 +17,7 @@ /* GLOBALS *******************************************************************/ static CONFIGURATION_INFORMATION -SystemConfigurationInformation = {0, 0, 0, 0, 0, 0, 0, FALSE, FALSE}; +_SystemConfigurationInformation = {0, 0, 0, 0, 0, 0, 0, FALSE, FALSE}; /* API Parameters to Pass in IopQueryBusDescription */ typedef struct IO_QUERY { @@ -659,7 +659,7 @@ IopQueryBusDescription( PCONFIGURATION_INFORMATION STDCALL IoGetConfigurationInformation(VOID) { - return(&SystemConfigurationInformation); + return(&_SystemConfigurationInformation); } /* diff --git a/reactos/ntoskrnl/kdbg/kdb_cli.c b/reactos/ntoskrnl/kdbg/kdb_cli.c index 7b2645572d6..4b83fc98a4d 100644 --- a/reactos/ntoskrnl/kdbg/kdb_cli.c +++ b/reactos/ntoskrnl/kdbg/kdb_cli.c @@ -1422,7 +1422,7 @@ KdbpCmdGdtLdtIdt(ULONG Argc, PCHAR Argv[]) STATIC BOOLEAN KdbpCmdPcr(ULONG Argc, PCHAR Argv[]) { - PKPCR Pcr = KeGetCurrentKPCR(); + PKIPCR Pcr = (PKIPCR)KeGetCurrentKPCR(); KdbpPrint("Current PCR is at 0x%08x.\n", (INT)Pcr); KdbpPrint(" Tib.ExceptionList: 0x%08x\n" @@ -1446,7 +1446,6 @@ KdbpCmdPcr(ULONG Argc, PCHAR Argv[]) " MinorVersion: 0x%04x\n" " SetMember: 0x%08x\n" " StallScaleFactor: 0x%08x\n" - " DebugActive: 0x%02x\n" " Number: 0x%02x\n" " L2CacheAssociativity: 0x%02x\n" " VdmAlert: 0x%08x\n" @@ -1457,7 +1456,7 @@ KdbpCmdPcr(ULONG Argc, PCHAR Argv[]) Pcr->Tib.Self, Pcr->Self, Pcr->Prcb, Pcr->Irql, Pcr->IRR, Pcr->IrrActive, Pcr->IDR, Pcr->KdVersionBlock, Pcr->IDT, Pcr->GDT, Pcr->TSS, Pcr->MajorVersion, Pcr->MinorVersion, Pcr->SetMember, Pcr->StallScaleFactor, - Pcr->DebugActive, Pcr->Number, Pcr->L2CacheAssociativity, + Pcr->Number, Pcr->L2CacheAssociativity, Pcr->VdmAlert, Pcr->L2CacheSize, Pcr->InterruptMode); return TRUE; diff --git a/reactos/ntoskrnl/kdbg/kdb_symbols.c b/reactos/ntoskrnl/kdbg/kdb_symbols.c index b70520458bf..e668e30fb8d 100644 --- a/reactos/ntoskrnl/kdbg/kdb_symbols.c +++ b/reactos/ntoskrnl/kdbg/kdb_symbols.c @@ -9,10 +9,7 @@ /* INCLUDES *****************************************************************/ -#include -#include #include -#include #define NDEBUG #include diff --git a/reactos/ntoskrnl/ke/i386/kernel.c b/reactos/ntoskrnl/ke/i386/kernel.c index 3ac6e525d5f..9894de1e5d6 100644 --- a/reactos/ntoskrnl/ke/i386/kernel.c +++ b/reactos/ntoskrnl/ke/i386/kernel.c @@ -37,7 +37,7 @@ Ki386GetCpuId(VOID) ULONG OrigFlags, Flags, FinalFlags; ULONG MaxCpuidLevel; ULONG Dummy, Eax, Ecx, Edx; - PKPCR Pcr = KeGetCurrentKPCR(); + PKIPCR Pcr = (PKIPCR)KeGetCurrentKPCR(); Ke386CpuidFlags2 = Ke386CpuidExFlags = 0; Ke386CacheAlignment = 32; @@ -166,11 +166,11 @@ KePrepareForApplicationProcessorInit(ULONG Id) { DPRINT("KePrepareForApplicationProcessorInit(Id %d)\n", Id); PFN_TYPE PrcPfn; - PKPCR Pcr; - PKPCR BootPcr; + PKIPCR Pcr; + PKIPCR BootPcr; - BootPcr = (PKPCR)KPCR_BASE; - Pcr = (PKPCR)((ULONG_PTR)KPCR_BASE + Id * PAGE_SIZE); + BootPcr = (PKIPCR)KPCR_BASE; + Pcr = (PKIPCR)((ULONG_PTR)KPCR_BASE + Id * PAGE_SIZE); MmRequestPageMemoryConsumer(MC_NPPOOL, TRUE, &PrcPfn); MmCreateVirtualMappingForKernel((PVOID)Pcr, @@ -183,7 +183,7 @@ KePrepareForApplicationProcessorInit(ULONG Id) memset(Pcr, 0, PAGE_SIZE); Pcr->Number = Id; Pcr->Tib.Self = &Pcr->Tib; - Pcr->Self = Pcr; + Pcr->Self = (PKPCR)Pcr; Pcr->Prcb = &Pcr->PrcbData; Pcr->Irql = SYNCH_LEVEL; @@ -200,7 +200,7 @@ VOID KeApplicationProcessorInit(VOID) { ULONG Offset; - PKPCR Pcr; + PKIPCR Pcr; DPRINT("KeApplicationProcessorInit()\n"); @@ -212,12 +212,12 @@ KeApplicationProcessorInit(VOID) Offset = InterlockedIncrementUL(&PcrsAllocated) - 1; - Pcr = (PKPCR)((ULONG_PTR)KPCR_BASE + Offset * PAGE_SIZE); + Pcr = (PKIPCR)((ULONG_PTR)KPCR_BASE + Offset * PAGE_SIZE); /* * Initialize the GDT */ - KiInitializeGdt(Pcr); + KiInitializeGdt((PKPCR)Pcr); /* Get processor information. */ Ki386GetCpuId(); @@ -261,7 +261,7 @@ KeApplicationProcessorInit(VOID) VOID INIT_FUNCTION KeInit1(PCHAR CommandLine, PULONG LastKernelAddress) { - PKPCR KPCR; + PKIPCR KPCR; BOOLEAN Pae = FALSE; BOOLEAN NoExecute = FALSE; PCHAR p1, p2; @@ -274,12 +274,12 @@ KeInit1(PCHAR CommandLine, PULONG LastKernelAddress) * called, so we use a predefined page in low memory */ - KPCR = (PKPCR)KPCR_BASE; + KPCR = (PKIPCR)KPCR_BASE; memset(KPCR, 0, PAGE_SIZE); - KPCR->Self = KPCR; + KPCR->Self = (PKPCR)KPCR; KPCR->Prcb = &KPCR->PrcbData; KPCR->Irql = SYNCH_LEVEL; - KPCR->Tib.Self = &KPCR->Tib; + KPCR->Tib.Self = &KPCR->Tib; KPCR->GDT = KiBootGdt; KPCR->IDT = (PUSHORT)KiIdt; KPCR->TSS = &KiBootTss; @@ -391,7 +391,7 @@ KeInit1(PCHAR CommandLine, PULONG LastKernelAddress) VOID INIT_FUNCTION KeInit2(VOID) { - PKPCR Pcr = KeGetCurrentKPCR(); + PKIPCR Pcr = (PKIPCR)KeGetCurrentKPCR(); KiInitializeBugCheck(); KeInitializeDispatcher(); @@ -454,7 +454,7 @@ KeInit2(VOID) VOID INIT_FUNCTION Ki386SetProcessorFeatures(VOID) { - PKPCR Pcr = KeGetCurrentKPCR(); + PKIPCR Pcr = (PKIPCR)KeGetCurrentKPCR(); OBJECT_ATTRIBUTES ObjectAttributes; UNICODE_STRING KeyName; UNICODE_STRING ValueName; diff --git a/reactos/ntoskrnl/ke/kthread.c b/reactos/ntoskrnl/ke/kthread.c index d758350b34c..42db43b0435 100644 --- a/reactos/ntoskrnl/ke/kthread.c +++ b/reactos/ntoskrnl/ke/kthread.c @@ -14,6 +14,10 @@ #define NDEBUG #include +#ifndef MUTANT_INCREMENT +#define MUTANT_INCREMENT 1 +#endif + #define THREAD_ALERT_INCREMENT 2 extern EX_WORK_QUEUE ExWorkerQueue[MaximumWorkQueue]; diff --git a/reactos/ntoskrnl/mm/elf.inc.h b/reactos/ntoskrnl/mm/elf.inc.h index 03ef00ced7a..a587ddeb20a 100644 --- a/reactos/ntoskrnl/mm/elf.inc.h +++ b/reactos/ntoskrnl/mm/elf.inc.h @@ -12,6 +12,10 @@ #error __ELF_WORD_SIZE must be defined #endif +#ifndef MAXULONG +#define MAXULONG ((ULONG)(~1)) +#endif + #include /* TODO: Intsafe should be made into a library, as it's generally useful */ diff --git a/reactos/ntoskrnl/mm/elf32.c b/reactos/ntoskrnl/mm/elf32.c index b2008041590..bda4f5746b1 100644 --- a/reactos/ntoskrnl/mm/elf32.c +++ b/reactos/ntoskrnl/mm/elf32.c @@ -11,6 +11,11 @@ #define __ELF_WORD_SIZE 32 #include "elf.inc.h" +#define IMAGE_FILE_MACHINE_ARM 0x01c0 // ARM little-endian +#define IMAGE_FILE_MACHINE_AXP64 IMAGE_FILE_MACHINE_ALPHA64 +#define IMAGE_FILE_MACHINE_ALPHA64 0x0284 // Alpha AXP, full 64-bit support +#define IMAGE_FILE_MACHINE_M32R 0x9041 // M32R little-endian + extern NTSTATUS NTAPI Elf64FmtCreateSection ( IN CONST VOID * FileHeader, diff --git a/reactos/ntoskrnl/mm/mm.c b/reactos/ntoskrnl/mm/mm.c index 5a54dbcb857..2faefde98a3 100644 --- a/reactos/ntoskrnl/mm/mm.c +++ b/reactos/ntoskrnl/mm/mm.c @@ -482,7 +482,7 @@ MmSetAddressRangeModified ( * @implemented */ PVOID -NTKERNELAPI +STDCALL MmGetSystemRoutineAddress ( IN PUNICODE_STRING SystemRoutineName ) diff --git a/reactos/ntoskrnl/mm/pe.c b/reactos/ntoskrnl/mm/pe.c index 27ff7429025..ac390793317 100644 --- a/reactos/ntoskrnl/mm/pe.c +++ b/reactos/ntoskrnl/mm/pe.c @@ -17,6 +17,10 @@ #include +#ifndef MAXULONG +#define MAXULONG ((ULONG)(~1)) +#endif + static ULONG SectionCharacteristicsToProtect[16] = { PAGE_NOACCESS, /* 0 = NONE */ diff --git a/reactos/ntoskrnl/mm/section.c b/reactos/ntoskrnl/mm/section.c index 70ec3c61348..82842f82b05 100644 --- a/reactos/ntoskrnl/mm/section.c +++ b/reactos/ntoskrnl/mm/section.c @@ -2561,7 +2561,6 @@ ExeFmtpReadFile(IN PVOID File, KEBUGCHECK(STATUS_INVALID_PARAMETER_5); } - ASSERT(PAGE_SIZE <= MAXULONG); AdjustOffset = PAGE_ROUND_DOWN(FileOffset.u.LowPart); OffsetAdjustment = FileOffset.u.LowPart - AdjustOffset; FileOffset.u.LowPart = AdjustOffset; diff --git a/reactos/ntoskrnl/ntoskrnl.xml b/reactos/ntoskrnl/ntoskrnl.xml index 1ce134a0a70..e78bc5786b1 100644 --- a/reactos/ntoskrnl/ntoskrnl.xml +++ b/reactos/ntoskrnl/ntoskrnl.xml @@ -4,6 +4,9 @@ + + + include include csq diff --git a/reactos/ntoskrnl/ob/handle.c b/reactos/ntoskrnl/ob/handle.c index bed19803bf9..21e7bd741ce 100644 --- a/reactos/ntoskrnl/ob/handle.c +++ b/reactos/ntoskrnl/ob/handle.c @@ -362,8 +362,8 @@ NtDuplicateObject (IN HANDLE SourceProcessHandle, IN HANDLE TargetProcessHandle, OUT PHANDLE TargetHandle OPTIONAL, IN ACCESS_MASK DesiredAccess, - IN BOOLEAN InheritHandle, - ULONG Options) + IN ULONG InheritHandle, + IN ULONG Options) /* * FUNCTION: Copies a handle from one process space to another * ARGUMENTS: diff --git a/reactos/ntoskrnl/ps/query.c b/reactos/ntoskrnl/ps/query.c index 5b4f8553f3a..58f52ba60e8 100644 --- a/reactos/ntoskrnl/ps/query.c +++ b/reactos/ntoskrnl/ps/query.c @@ -1272,7 +1272,7 @@ NtQueryInformationThread (IN HANDLE ThreadHandle, * 0. So do the conversion here: * -Gunnar */ u.TBI.ExitStatus = (Thread->ExitStatus == 0) ? STATUS_PENDING : Thread->ExitStatus; - u.TBI.TebBaseAddress = Thread->Tcb.Teb; + u.TBI.TebBaseAddress = (PVOID)Thread->Tcb.Teb; u.TBI.ClientId = Thread->Cid; u.TBI.AffinityMask = Thread->Tcb.Affinity; u.TBI.Priority = Thread->Tcb.Priority; diff --git a/reactos/ntoskrnl/ps/quota.c b/reactos/ntoskrnl/ps/quota.c index 50a81f04669..ed0b1737490 100644 --- a/reactos/ntoskrnl/ps/quota.c +++ b/reactos/ntoskrnl/ps/quota.c @@ -22,7 +22,7 @@ VOID STDCALL PsChargePoolQuota(IN PEPROCESS Process, IN POOL_TYPE PoolType, - IN ULONG_PTR Amount) + IN ULONG Amount) { NTSTATUS Status; @@ -67,7 +67,7 @@ NTSTATUS STDCALL PsChargeProcessPoolQuota(IN PEPROCESS Process, IN POOL_TYPE PoolType, - IN ULONG_PTR Amount) + IN ULONG Amount) { PEPROCESS_QUOTA_BLOCK QuotaBlock; ULONG NewUsageSize; diff --git a/reactos/ntoskrnl/ps/security.c b/reactos/ntoskrnl/ps/security.c index 5429dee7942..8707afaffa2 100644 --- a/reactos/ntoskrnl/ps/security.c +++ b/reactos/ntoskrnl/ps/security.c @@ -346,7 +346,7 @@ PsRevertThreadToSelf(IN PETHREAD Thread) /* * @implemented */ -VOID +NTSTATUS STDCALL PsImpersonateClient(IN PETHREAD Thread, IN PACCESS_TOKEN Token, @@ -367,7 +367,7 @@ PsImpersonateClient(IN PETHREAD Thread, } } - return; + return STATUS_UNSUCCESSFUL; } if (Thread->ImpersonationInfo == NULL) { @@ -387,6 +387,8 @@ PsImpersonateClient(IN PETHREAD Thread, KernelMode); Thread->ActiveImpersonationInfo = TRUE; + + return STATUS_SUCCESS; } diff --git a/reactos/ntoskrnl/rtl/i386/exception.c b/reactos/ntoskrnl/rtl/i386/exception.c index 5012e872016..f066ac6fb4f 100755 --- a/reactos/ntoskrnl/rtl/i386/exception.c +++ b/reactos/ntoskrnl/rtl/i386/exception.c @@ -10,10 +10,7 @@ /* INCLUDES *****************************************************************/ -#include -#include -#include -#include +#include #define NDEBUG #include diff --git a/reactos/ntoskrnl/rtl/misc.c b/reactos/ntoskrnl/rtl/misc.c index 72432f498ea..8f2d30a2054 100644 --- a/reactos/ntoskrnl/rtl/misc.c +++ b/reactos/ntoskrnl/rtl/misc.c @@ -21,34 +21,6 @@ extern ULONG NtMajorVersion; extern ULONG NtMinorVersion; extern ULONG NtOSCSDVersion; -/* header hell made me do this...sorry */ -typedef struct _OSVERSIONINFOW { - DWORD dwOSVersionInfoSize; - DWORD dwMajorVersion; - DWORD dwMinorVersion; - DWORD dwBuildNumber; - DWORD dwPlatformId; - WCHAR szCSDVersion[ 128 ]; -} OSVERSIONINFOW, *POSVERSIONINFOW, *LPOSVERSIONINFOW, RTL_OSVERSIONINFOW, *PRTL_OSVERSIONINFOW; - -typedef struct _OSVERSIONINFOEXW { - DWORD dwOSVersionInfoSize; - DWORD dwMajorVersion; - DWORD dwMinorVersion; - DWORD dwBuildNumber; - DWORD dwPlatformId; - WCHAR szCSDVersion[ 128 ]; - WORD wServicePackMajor; - WORD wServicePackMinor; - WORD wSuiteMask; - BYTE wProductType; - BYTE wReserved; -} OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW, RTL_OSVERSIONINFOEXW, *PRTL_OSVERSIONINFOEXW; - -#ifndef VER_PLATFORM_WIN32_NT -#define VER_PLATFORM_WIN32_NT (2) -#endif - /* FUNCTIONS *****************************************************************/ /* diff --git a/reactos/ntoskrnl/se/access.c b/reactos/ntoskrnl/se/access.c index b9df485f5f2..714e0f7d712 100644 --- a/reactos/ntoskrnl/se/access.c +++ b/reactos/ntoskrnl/se/access.c @@ -49,7 +49,7 @@ SeCreateAccessState(PACCESS_STATE AccessState, /* Set Access State Data */ AccessState->AuxData = AuxData; AccessState->RemainingDesiredAccess = AccessMask; - AccessState->OriginallyDesiredAccess = AccessMask; + AccessState->OriginalDesiredAccess = AccessMask; ExpAllocateLocallyUniqueId(&AccessState->OperationID); /* Get the Token to use */ diff --git a/reactos/subsys/win32k/w32k.h b/reactos/subsys/win32k/w32k.h index 892a2067274..a7ad9f1b59a 100644 --- a/reactos/subsys/win32k/w32k.h +++ b/reactos/subsys/win32k/w32k.h @@ -18,6 +18,9 @@ #include #include +#include +#include +#include #include #include #include diff --git a/reactos/w32api/include/ddk/ntifs.h b/reactos/w32api/include/ddk/ntifs.h index e49576cf235..d2086635e3f 100644 --- a/reactos/w32api/include/ddk/ntifs.h +++ b/reactos/w32api/include/ddk/ntifs.h @@ -3529,6 +3529,14 @@ ObReferenceObjectByName ( OUT PVOID *Object ); +NTKERNELAPI +NTSTATUS +NTAPI +PsAssignImpersonationToken ( + IN PETHREAD Thread, + IN HANDLE Token +); + NTKERNELAPI VOID NTAPI @@ -3538,6 +3546,15 @@ PsChargePoolQuota ( IN ULONG Amount ); +NTKERNELAPI +NTSTATUS +NTAPI +PsChargeProcessPoolQuota ( + IN PEPROCESS Process, + IN POOL_TYPE PoolType, + IN ULONG_PTR Amount +); + #define PsDereferenceImpersonationToken(T) \ {if (ARGUMENT_PRESENT(T)) { \ (ObDereferenceObject((T))); \ @@ -3548,6 +3565,14 @@ PsChargePoolQuota ( #define PsDereferencePrimaryToken(T) (ObDereferenceObject((T))) +NTKERNELAPI +BOOLEAN +NTAPI +PsDisableImpersonation( + IN PETHREAD Thread, + IN PSE_IMPERSONATION_STATE ImpersonationState +); + NTKERNELAPI LARGE_INTEGER NTAPI @@ -3555,6 +3580,17 @@ PsGetProcessExitTime ( VOID ); +NTKERNELAPI +NTSTATUS +NTAPI +PsImpersonateClient( + IN PETHREAD Thread, + IN PACCESS_TOKEN Token, + IN BOOLEAN CopyOnOpen, + IN BOOLEAN EffectiveOnly, + IN SECURITY_IMPERSONATION_LEVEL ImpersonationLevel +); + NTKERNELAPI BOOLEAN NTAPI @@ -3611,6 +3647,14 @@ PsReferencePrimaryToken ( IN PEPROCESS Process ); +NTKERNELAPI +VOID +NTAPI +PsRestoreImpersonation( + IN PETHREAD Thread, + IN PSE_IMPERSONATION_STATE ImpersonationState +); + NTKERNELAPI VOID NTAPI