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