diff --git a/reactos/include/ddk/winddk.h b/reactos/include/ddk/winddk.h index 8bd053379a9..a29a81703c9 100644 --- a/reactos/include/ddk/winddk.h +++ b/reactos/include/ddk/winddk.h @@ -4876,10 +4876,11 @@ typedef enum _REG_NOTIFY_CLASS } REG_NOTIFY_CLASS, *PREG_NOTIFY_CLASS; typedef NTSTATUS -(DDKAPI *PEX_CALLBACK_FUNCTION)( - IN PVOID CallbackContext, - IN REG_NOTIFY_CLASS Argument1, - IN PVOID Argument2); +(NTAPI *PEX_CALLBACK_FUNCTION)( + IN PVOID CallbackContext, + IN PVOID Argument1, + IN PVOID Argument2 +); typedef struct _REG_DELETE_KEY_INFORMATION { @@ -10451,13 +10452,13 @@ WmiTraceMessageVa( /** Kernel debugger routines **/ NTOSAPI -VOID +NTSTATUS DDKAPI KdDisableDebugger( VOID); NTOSAPI -VOID +NTSTATUS DDKAPI KdEnableDebugger( VOID); diff --git a/reactos/include/ndk/i386/ketypes.h b/reactos/include/ndk/i386/ketypes.h index 3f10f732cb3..484cb767e81 100644 --- a/reactos/include/ndk/i386/ketypes.h +++ b/reactos/include/ndk/i386/ketypes.h @@ -115,23 +115,6 @@ Author: #define SYNCH_LEVEL (IPI_LEVEL - 1) #endif -// -// Macro to get current KPRCB -// -#ifndef __GNUC__ // fixme -FORCEINLINE -struct _KPRCB * -KeGetCurrentPrcb(VOID) -{ - return (struct _KPRCB *)(ULONG_PTR)__readfsdword(FIELD_OFFSET(KPCR, Prcb)); -} - -// -// Macro to get current previous mode -// -#define KeGetPreviousMode ExGetPreviousMode -#endif - // // Trap Frame Definition // @@ -282,6 +265,23 @@ typedef struct _DESCRIPTOR #ifndef NTOS_MODE_USER +// +// Macro to get current KPRCB +// +#ifndef __GNUC__ // fixme +FORCEINLINE +struct _KPRCB * +KeGetCurrentPrcb(VOID) +{ + return (struct _KPRCB *)(ULONG_PTR)__readfsdword(FIELD_OFFSET(KPCR, Prcb)); +} + +// +// Macro to get current previous mode +// +#define KeGetPreviousMode ExGetPreviousMode +#endif + // // FN/FX (FPU) Save Area Structures // diff --git a/reactos/lib/rtl/bitmap.c b/reactos/lib/rtl/bitmap.c index 584bfcf1660..98514ae85fd 100644 --- a/reactos/lib/rtl/bitmap.c +++ b/reactos/lib/rtl/bitmap.c @@ -36,6 +36,7 @@ static const signed char NTDLL_mostSignificant[16] = { static int +__cdecl NTDLL_RunSortFn(const void *lhs, const void *rhs) { diff --git a/reactos/lib/rtl/swprintf.c b/reactos/lib/rtl/swprintf.c index f8d35052555..8d8ab1afbd8 100644 --- a/reactos/lib/rtl/swprintf.c +++ b/reactos/lib/rtl/swprintf.c @@ -383,7 +383,7 @@ stringw(wchar_t* buf, wchar_t* end, const wchar_t* sw, int len, int field_width, /* * @implemented */ -int _vsnwprintf(wchar_t *buf, size_t cnt, const wchar_t *fmt, va_list args) +int __cdecl _vsnwprintf(wchar_t *buf, size_t cnt, const wchar_t *fmt, va_list args) { int len; unsigned long long num; @@ -726,7 +726,7 @@ int swprintf(wchar_t *buf, const wchar_t *fmt, ...) /* * @implemented */ -int _snwprintf(wchar_t *buf, size_t cnt, const wchar_t *fmt, ...) +int __cdecl _snwprintf(wchar_t *buf, size_t cnt, const wchar_t *fmt, ...) { va_list args; int i; @@ -741,7 +741,7 @@ int _snwprintf(wchar_t *buf, size_t cnt, const wchar_t *fmt, ...) /* * @implemented */ -int vswprintf(wchar_t *buf, const wchar_t *fmt, va_list args) +int __cdecl vswprintf(wchar_t *buf, const wchar_t *fmt, va_list args) { return _vsnwprintf(buf,MAXLONG,fmt,args); } diff --git a/reactos/ntoskrnl/cm/cm.h b/reactos/ntoskrnl/cm/cm.h index 8af8576539a..008048fe92e 100644 --- a/reactos/ntoskrnl/cm/cm.h +++ b/reactos/ntoskrnl/cm/cm.h @@ -116,12 +116,6 @@ extern ERESOURCE CmiRegistryLock; /* Registry Callback Function */ -typedef NTSTATUS (STDCALL *PEX_CALLBACK_FUNCTION ) ( - IN PVOID CallbackContext, - IN REG_NOTIFY_CLASS Argument1, - IN PVOID Argument2 - ); - typedef struct _REGISTRY_CALLBACK { LIST_ENTRY ListEntry; diff --git a/reactos/ntoskrnl/cm/ntfunc.c b/reactos/ntoskrnl/cm/ntfunc.c index 155a3aca99a..a89885017f4 100644 --- a/reactos/ntoskrnl/cm/ntfunc.c +++ b/reactos/ntoskrnl/cm/ntfunc.c @@ -257,7 +257,7 @@ CmiCallRegisteredCallbacks(IN REG_NOTIFY_CLASS Argument1, ExReleaseFastMutex(&CmiCallbackLock); Status = CurrentCallback->Function(CurrentCallback->Context, - Argument1, + (PVOID)Argument1, Argument2); ExAcquireFastMutex(&CmiCallbackLock); diff --git a/reactos/ntoskrnl/include/internal/io.h b/reactos/ntoskrnl/include/internal/io.h index c0dc51181bc..8a30fab5487 100644 --- a/reactos/ntoskrnl/include/internal/io.h +++ b/reactos/ntoskrnl/include/internal/io.h @@ -1027,6 +1027,8 @@ extern ULONG IopTraceLevel; extern NPAGED_LOOKASIDE_LIST IopMdlLookasideList; extern GENERIC_MAPPING IopCompletionMapping; extern GENERIC_MAPPING IopFileMapping; +extern POBJECT_TYPE _IoFileObjectType; +extern HAL_DISPATCH _HalDispatchTable; // // Inlined Functions diff --git a/reactos/ntoskrnl/include/internal/kd.h b/reactos/ntoskrnl/include/internal/kd.h index f42e69ecafd..9a42617ff67 100644 --- a/reactos/ntoskrnl/include/internal/kd.h +++ b/reactos/ntoskrnl/include/internal/kd.h @@ -13,6 +13,8 @@ typedef struct _KD_PORT_INFORMATION struct _KD_DISPATCH_TABLE; extern KD_PORT_INFORMATION GdbPortInfo; +extern BOOLEAN _KdDebuggerEnabled; +extern BOOLEAN _KdDebuggerNotPresent; BOOLEAN NTAPI diff --git a/reactos/ntoskrnl/include/internal/ps.h b/reactos/ntoskrnl/include/internal/ps.h index d4ee2681d84..cadf8379bb7 100644 --- a/reactos/ntoskrnl/include/internal/ps.h +++ b/reactos/ntoskrnl/include/internal/ps.h @@ -366,6 +366,7 @@ extern PVOID PspSystemDllBase; extern BOOLEAN PspUseJobSchedulingClasses; extern CHAR PspJobSchedulingClasses[PSP_JOB_SCHEDULING_CLASSES]; extern ULONG PsRawPrioritySeparation; +extern POBJECT_TYPE _PsThreadType; // // Inlined Functions diff --git a/reactos/ntoskrnl/include/ntoskrnl.h b/reactos/ntoskrnl/include/ntoskrnl.h index 7e961e827b3..86b14e3e1eb 100644 --- a/reactos/ntoskrnl/include/ntoskrnl.h +++ b/reactos/ntoskrnl/include/ntoskrnl.h @@ -8,8 +8,8 @@ /* INCLUDES ******************************************************************/ -/* We are the Kernel */ -#define _NTSYSTEM_ +/* Tells the WDK that we don't want to import */ +#define NTKERNELAPI /* DDK/IFS/NDK Headers */ #include @@ -53,3 +53,25 @@ /* Internal Headers */ #include "internal/ntoskrnl.h" #include "config.h" + +// +// Define the internal versions of external and public global data +// +#define IoFileObjectType _IoFileObjectType +#define PsThreadType _PsThreadType +#define KdDebuggerEnabled _KdDebuggerEnabled +#define KdDebuggerNotPresent _KdDebuggerNotPresent +#define FsRtlLegalAnsiCharacterArray _FsRtlLegalAnsiCharacterArray +#undef LEGAL_ANSI_CHARACTER_ARRAY +#undef NLS_MB_CODE_PAGE_TAG +#undef NLS_OEM_LEAD_BYTE_INFO +#define LEGAL_ANSI_CHARACTER_ARRAY FsRtlLegalAnsiCharacterArray +#define NLS_MB_CODE_PAGE_TAG NlsMbOemCodePageTag +#define NLS_OEM_LEAD_BYTE_INFO NlsOemLeadByteInfo +#undef KD_DEBUGGER_ENABLED +#undef KD_DEBUGGER_NOT_PRESENT +#define KD_DEBUGGER_ENABLED KdDebuggerEnabled +#define KD_DEBUGGER_NOT_PRESENT KdDebuggerNotPresent +#define HalDispatchTable _HalDispatchTable +#undef HALDISPATCH +#define HALDISPATCH (&HalDispatchTable) diff --git a/reactos/ntoskrnl/kd/kdmain.c b/reactos/ntoskrnl/kd/kdmain.c index 1a55f5ee26c..32f9828e57b 100644 --- a/reactos/ntoskrnl/kd/kdmain.c +++ b/reactos/ntoskrnl/kd/kdmain.c @@ -136,7 +136,7 @@ KdpEnterDebuggerException(PEXCEPTION_RECORD ExceptionRecord, /* * @implemented */ -VOID +NTSTATUS STDCALL KdDisableDebugger(VOID) { @@ -152,12 +152,15 @@ KdDisableDebugger(VOID) /* Lower the IRQL */ KeLowerIrql(OldIrql); + + /* Return success */ + return STATUS_SUCCESS; } /* * @implemented */ -VOID +NTSTATUS STDCALL KdEnableDebugger(VOID) { @@ -173,6 +176,9 @@ KdEnableDebugger(VOID) /* Lower the IRQL */ KeLowerIrql(OldIrql); + + /* Return success */ + return STATUS_SUCCESS; } /* diff --git a/reactos/ntoskrnl/ntoskrnl.def b/reactos/ntoskrnl/ntoskrnl.def index 849637f97cb..04ba96f7b54 100644 --- a/reactos/ntoskrnl/ntoskrnl.def +++ b/reactos/ntoskrnl/ntoskrnl.def @@ -229,7 +229,7 @@ FsRtlIsNameInExpression@16 FsRtlIsNtstatusExpected@4 FsRtlIsPagingFile@4 FsRtlIsTotalDeviceFailure@4 -FsRtlLegalAnsiCharacterArray DATA +FsRtlLegalAnsiCharacterArray=_FsRtlLegalAnsiCharacterArray FsRtlLookupLargeMcbEntry@32 FsRtlLookupLastLargeMcbEntry@12 FsRtlLookupLastLargeMcbEntryAndIndex@16 @@ -280,7 +280,7 @@ FsRtlUninitializeFileLock@4 FsRtlUninitializeLargeMcb@4 FsRtlUninitializeMcb@4 FsRtlUninitializeOplock@4 -HalDispatchTable DATA +HalDispatchTable=_HalDispatchTable HalPrivateDispatchTable DATA @HalExamineMBR@16 InbvAcquireDisplayOwnership@0 @@ -368,7 +368,7 @@ IoDriverObjectType DATA IoEnqueueIrp@4 IoEnumerateDeviceObjectList@16 IoFastQueryNetworkAttributes@20 -IoFileObjectType DATA +IoFileObjectType=_IoFileObjectType IoForwardAndCatchIrp@8=IoForwardIrpSynchronously@8 IoForwardIrpSynchronously@8 IoFreeController@4 @@ -504,8 +504,8 @@ IoWriteTransferCount DATA @IofCompleteRequest@8 IoIsWdmVersionAvailable@8 KdComPortInUse DATA -KdDebuggerEnabled DATA -KdDebuggerNotPresent DATA +KdDebuggerEnabled=_KdDebuggerEnabled +KdDebuggerNotPresent=_KdDebuggerNotPresent KdDisableDebugger@0 KdEnableDebugger@0 KdEnteredDebugger @@ -964,7 +964,7 @@ PsSetThreadHardErrorsAreDisabled@8 PsSetThreadWin32Thread@8 PsSetLoadImageNotifyRoutine@4 PsTerminateSystemThread@4 -PsThreadType DATA +PsThreadType=_PsThreadType READ_REGISTER_UCHAR@4 READ_REGISTER_ULONG@4 READ_REGISTER_USHORT@4 diff --git a/reactos/ntoskrnl/ntoskrnl.rbuild b/reactos/ntoskrnl/ntoskrnl.rbuild index dca4cab0aa1..a936e40a59e 100644 --- a/reactos/ntoskrnl/ntoskrnl.rbuild +++ b/reactos/ntoskrnl/ntoskrnl.rbuild @@ -5,6 +5,7 @@ + diff --git a/reactos/ntoskrnl/ps/win32.c b/reactos/ntoskrnl/ps/win32.c index a9f9933c23e..c09291cf497 100644 --- a/reactos/ntoskrnl/ps/win32.c +++ b/reactos/ntoskrnl/ps/win32.c @@ -9,6 +9,7 @@ /* INCLUDES ****************************************************************/ #include +#include #define NDEBUG #include