https://git.reactos.org/?p=reactos.git;a=commitdiff;h=d4546753f62f0d801efd6b7277a71448a2e74bb2

commit d4546753f62f0d801efd6b7277a71448a2e74bb2
Author:     Hervé Poussineau <hpous...@reactos.org>
AuthorDate: Sun Sep 22 21:42:43 2024 +0200
Commit:     Hermès Bélusca-Maïto <hermes.belusca-ma...@reactos.org>
CommitDate: Tue Jan 28 22:00:53 2025 +0100

    [NTOS:EX] Implement NtSystemDebugControl: 
SysDbgGetKdUmExceptionEnable/SysDbgSetKdUmExceptionEnable
---
 ntoskrnl/ex/dbgctrl.c | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/ntoskrnl/ex/dbgctrl.c b/ntoskrnl/ex/dbgctrl.c
index 0091af90f23..a624b576463 100644
--- a/ntoskrnl/ex/dbgctrl.c
+++ b/ntoskrnl/ex/dbgctrl.c
@@ -332,8 +332,40 @@ NtSystemDebugControl(
                 break;
 
             case SysDbgSetPrintBufferSize:
+                UNIMPLEMENTED;
+                Status = STATUS_NOT_IMPLEMENTED;
+                break;
+
             case SysDbgGetKdUmExceptionEnable:
+                if (OutputBufferLength != sizeof(BOOLEAN))
+                {
+                    Status = STATUS_INFO_LENGTH_MISMATCH;
+                }
+                else
+                {
+                    /* Unfortunately, the internal flag says if UM exceptions 
are disabled */
+                    *(PBOOLEAN)OutputBuffer = !KdIgnoreUmExceptions;
+                    Status = STATUS_SUCCESS;
+                }
+                break;
+
             case SysDbgSetKdUmExceptionEnable:
+                if (InputBufferLength != sizeof(BOOLEAN))
+                {
+                    Status = STATUS_INFO_LENGTH_MISMATCH;
+                }
+                else if (KdPitchDebugger)
+                {
+                    Status = STATUS_ACCESS_DENIED;
+                }
+                else
+                {
+                    /* Unfortunately, the internal flag says if UM exceptions 
are disabled */
+                    KdIgnoreUmExceptions = !*(PBOOLEAN)InputBuffer;
+                    Status = STATUS_SUCCESS;
+                }
+                break;
+
             case SysDbgGetTriageDump:
             case SysDbgGetKdBlockEnable:
             case SysDbgSetKdBlockEnable:

Reply via email to