Jacek Caban : ntoskrnl.exe: Implement KeBugCheck and KeBugCheckEx.
Alexandre Julliard
julliard at winehq.org
Tue Jun 25 17:25:51 CDT 2019
Module: wine
Branch: master
Commit: 39d4f9d8afed0b67928ec471be7ae4a0b07e8150
URL: https://source.winehq.org/git/wine.git/?a=commit;h=39d4f9d8afed0b67928ec471be7ae4a0b07e8150
Author: Jacek Caban <jacek at codeweavers.com>
Date: Tue Jun 25 15:36:15 2019 +0200
ntoskrnl.exe: Implement KeBugCheck and KeBugCheckEx.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45656
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/ntoskrnl.exe/ntoskrnl.c | 17 +++++++++++++++++
dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 4 ++--
include/ddk/ntddk.h | 1 +
include/ddk/wdm.h | 1 +
4 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index 79c45c7..209410c 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -3182,6 +3182,23 @@ BOOLEAN WINAPI KeAreApcsDisabled(void)
}
/***********************************************************************
+ * KeBugCheck (NTOSKRNL.@)
+ */
+void WINAPI KeBugCheck(ULONG code)
+{
+ KeBugCheckEx(code, 0, 0, 0, 0);
+}
+
+/***********************************************************************
+ * KeBugCheckEx (NTOSKRNL.@)
+ */
+void WINAPI KeBugCheckEx(ULONG code, ULONG_PTR param1, ULONG_PTR param2, ULONG_PTR param3, ULONG_PTR param4)
+{
+ ERR( "%x %lx %lx %lx %lx\n", code, param1, param2, param3, param4 );
+ ExitProcess( code );
+}
+
+/***********************************************************************
* ProbeForRead (NTOSKRNL.EXE.@)
*/
void WINAPI ProbeForRead(void *address, SIZE_T length, ULONG alignment)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
index afe216b..d119f37 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
+++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
@@ -525,8 +525,8 @@
@ stub KeAddSystemServiceTable
@ stdcall KeAreApcsDisabled()
@ stub KeAttachProcess
-@ stub KeBugCheck
-@ stub KeBugCheckEx
+@ stdcall KeBugCheck(long)
+@ stdcall KeBugCheckEx(long long long long long)
@ stdcall KeCancelTimer(ptr)
@ stub KeCapturePersistentThreadState
@ stdcall KeClearEvent(ptr)
diff --git a/include/ddk/ntddk.h b/include/ddk/ntddk.h
index 4afef81..8c7ead7 100644
--- a/include/ddk/ntddk.h
+++ b/include/ddk/ntddk.h
@@ -217,6 +217,7 @@ NTSTATUS WINAPI IoQueryDeviceDescription(PINTERFACE_TYPE,PULONG,PCONFIGURATION_
void WINAPI IoRegisterDriverReinitialization(PDRIVER_OBJECT,PDRIVER_REINITIALIZE,PVOID);
NTSTATUS WINAPI IoRegisterShutdownNotification(PDEVICE_OBJECT);
BOOLEAN WINAPI KeAreApcsDisabled(void);
+void WINAPI DECLSPEC_NORETURN KeBugCheck(ULONG);
NTSTATUS WINAPI KeExpandKernelStackAndCallout(PEXPAND_STACK_CALLOUT,void*,SIZE_T);
void WINAPI KeSetTargetProcessorDpc(PRKDPC,CCHAR);
BOOLEAN WINAPI MmIsAddressValid(void *);
diff --git a/include/ddk/wdm.h b/include/ddk/wdm.h
index f79b36a..e3333e9 100644
--- a/include/ddk/wdm.h
+++ b/include/ddk/wdm.h
@@ -1613,6 +1613,7 @@ void WINAPI KeAcquireSpinLock(KSPIN_LOCK*,KIRQL*);
KIRQL WINAPI KeAcquireSpinLockRaiseToDpc(KSPIN_LOCK*);
#endif
void WINAPI KeAcquireSpinLockAtDpcLevel(KSPIN_LOCK*);
+void WINAPI DECLSPEC_NORETURN KeBugCheckEx(ULONG,ULONG_PTR,ULONG_PTR,ULONG_PTR,ULONG_PTR);
BOOLEAN WINAPI KeCancelTimer(KTIMER*);
void WINAPI KeClearEvent(PRKEVENT);
NTSTATUS WINAPI KeDelayExecutionThread(KPROCESSOR_MODE,BOOLEAN,LARGE_INTEGER*);
More information about the wine-cvs
mailing list