mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 01:15:09 +00:00
- 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.
svn path=/trunk/; revision=41969
This commit is contained in:
parent
9044027a2d
commit
1996b84fae
4 changed files with 13 additions and 4 deletions
|
@ -33,7 +33,7 @@ DbgUiConnectToDbg(VOID)
|
|||
return ZwCreateDebugObject(&NtCurrentTeb()->DbgSsReserved[1],
|
||||
DEBUG_OBJECT_ALL_ACCESS,
|
||||
&ObjectAttributes,
|
||||
TRUE);
|
||||
DBGK_KILL_PROCESS_ON_EXIT);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -43,7 +43,7 @@ NtCreateDebugObject(
|
|||
OUT PHANDLE DebugHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes,
|
||||
IN BOOLEAN KillProcessOnExit
|
||||
IN ULONG Flags
|
||||
);
|
||||
|
||||
NTSYSCALLAPI
|
||||
|
|
|
@ -43,6 +43,12 @@ Author:
|
|||
#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
|
||||
//
|
||||
|
|
|
@ -1512,7 +1512,7 @@ NTAPI
|
|||
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;
|
||||
|
@ -1537,6 +1537,9 @@ NtCreateDebugObject(OUT PHANDLE DebugHandle,
|
|||
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,
|
||||
DbgkDebugObjectType,
|
||||
|
@ -1561,7 +1564,7 @@ NtCreateDebugObject(OUT PHANDLE DebugHandle,
|
|||
FALSE);
|
||||
|
||||
/* Set the Flags */
|
||||
DebugObject->KillProcessOnExit = KillProcessOnExit;
|
||||
DebugObject->Flags = Flags;
|
||||
|
||||
/* Insert it */
|
||||
Status = ObInsertObject((PVOID)DebugObject,
|
||||
|
|
Loading…
Reference in a new issue