Author: sginsberg Date: Wed Jul 15 16:01:15 2009 New Revision: 41969
URL: http://svn.reactos.org/svn/reactos?rev=41969&view=rev Log: - The 4th parameter of NtCreateDebugObject is not a BOOLEAN -- it is a ULONG, meaning it could contain several flags (but only 0x1 seems to be valid). Add DBGK_KILL_PROCESS_ON_EXIT as this flag and use it.
Modified: trunk/reactos/dll/ntdll/dbg/dbgui.c trunk/reactos/include/ndk/dbgkfuncs.h trunk/reactos/include/ndk/dbgktypes.h trunk/reactos/ntoskrnl/dbgk/dbgkobj.c
Modified: trunk/reactos/dll/ntdll/dbg/dbgui.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/ntdll/dbg/dbgui.c?rev=4... ============================================================================== --- trunk/reactos/dll/ntdll/dbg/dbgui.c [iso-8859-1] (original) +++ trunk/reactos/dll/ntdll/dbg/dbgui.c [iso-8859-1] Wed Jul 15 16:01:15 2009 @@ -33,7 +33,7 @@ return ZwCreateDebugObject(&NtCurrentTeb()->DbgSsReserved[1], DEBUG_OBJECT_ALL_ACCESS, &ObjectAttributes, - TRUE); + DBGK_KILL_PROCESS_ON_EXIT); }
/*
Modified: trunk/reactos/include/ndk/dbgkfuncs.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/dbgkfuncs.h?rev... ============================================================================== --- trunk/reactos/include/ndk/dbgkfuncs.h [iso-8859-1] (original) +++ trunk/reactos/include/ndk/dbgkfuncs.h [iso-8859-1] Wed Jul 15 16:01:15 2009 @@ -43,7 +43,7 @@ OUT PHANDLE DebugHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, - IN BOOLEAN KillProcessOnExit + IN ULONG Flags );
NTSYSCALLAPI
Modified: trunk/reactos/include/ndk/dbgktypes.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/dbgktypes.h?rev... ============================================================================== --- trunk/reactos/include/ndk/dbgktypes.h [iso-8859-1] (original) +++ trunk/reactos/include/ndk/dbgktypes.h [iso-8859-1] Wed Jul 15 16:01:15 2009 @@ -42,6 +42,12 @@ #define DEBUG_EVENT_RELEASE (0x08) #define DEBUG_EVENT_PROTECT_FAILED (0x10) #define DEBUG_EVENT_SUSPEND (0x20) + +// +// NtCreateDebugObject Flags +// +#define DBGK_KILL_PROCESS_ON_EXIT (0x1) +#define DBGK_ALL_FLAGS (DBGK_KILL_PROCESS_ON_EXIT)
// // Debug Object Information Classes for NtQueryDebugObject
Modified: trunk/reactos/ntoskrnl/dbgk/dbgkobj.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/dbgk/dbgkobj.c?rev... ============================================================================== --- trunk/reactos/ntoskrnl/dbgk/dbgkobj.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/dbgk/dbgkobj.c [iso-8859-1] Wed Jul 15 16:01:15 2009 @@ -1512,7 +1512,7 @@ NtCreateDebugObject(OUT PHANDLE DebugHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, - IN BOOLEAN KillProcessOnExit) + IN ULONG Flags) { KPROCESSOR_MODE PreviousMode = ExGetPreviousMode(); PDEBUG_OBJECT DebugObject; @@ -1536,6 +1536,9 @@ } _SEH2_END; if (!NT_SUCCESS(Status)) return Status; } + + /* Check for invalid flags */ + if (Flags & ~DBGK_ALL_FLAGS) return STATUS_INVALID_PARAMETER;
/* Create the Object */ Status = ObCreateObject(PreviousMode, @@ -1561,7 +1564,7 @@ FALSE);
/* Set the Flags */ - DebugObject->KillProcessOnExit = KillProcessOnExit; + DebugObject->Flags = Flags;
/* Insert it */ Status = ObInsertObject((PVOID)DebugObject,