reactos/ntoskrnl/include/internal/dbgk.h

149 lines
3 KiB
C
Raw Normal View History

/*
* PROJECT: ReactOS Kernel
* LICENSE: GPL - See COPYING in the top level directory
* FILE: ntoskrnl/include/internal/dbgk.h
* PURPOSE: Internal header for the User-Mode Debugging Backend
* PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)
*/
//
// Define this if you want debugging support
//
#define _DBGK_DEBUG_ 0x00
//
// These define the Debug Masks Supported
//
#define DBGK_THREAD_DEBUG 0x01
#define DBGK_PROCESS_DEBUG 0x02
#define DBGK_OBJECT_DEBUG 0x04
#define DBGK_MESSAGE_DEBUG 0x08
#define DBGK_EXCEPTION_DEBUG 0x10
//
// Debug/Tracing support
//
#if _DBGK_DEBUG_
#ifdef NEW_DEBUG_SYSTEM_IMPLEMENTED // enable when Debug Filters are implemented
#define DBGKTRACE(x, ...) \
{ \
DbgPrintEx("%s [%.16s] - ", \
__FUNCTION__, \
PsGetCurrentProcess()->ImageFileName); \
DbgPrintEx(__VA_ARGS__); \
}
#else
#define DBGKTRACE(x, ...) \
if (x & DbgkpTraceLevel) \
{ \
DbgPrint("%s [%.16s] - ", \
__FUNCTION__, \
PsGetCurrentProcess()->ImageFileName); \
DbgPrint(__VA_ARGS__); \
}
#endif
#else
#define DBGKTRACE(x, fmt, ...) DPRINT(fmt, ##__VA_ARGS__)
#endif
INIT_FUNCTION
VOID
NTAPI
DbgkInitialize(
VOID
);
VOID
NTAPI
DbgkCreateThread(
IN PETHREAD Thread,
IN PVOID StartAddress
);
VOID
NTAPI
DbgkExitProcess(
IN NTSTATUS ExitStatus
);
VOID
NTAPI
DbgkExitThread(
IN NTSTATUS ExitStatus
);
VOID
NTAPI
DbgkMapViewOfSection(
IN PVOID Section,
IN PVOID BaseAddress,
IN ULONG SectionOffset,
IN ULONG_PTR ViewSize
);
VOID
NTAPI
DbgkUnMapViewOfSection(
IN PVOID BaseAddress
);
BOOLEAN
NTAPI
DbgkpSuspendProcess(
VOID
);
VOID
NTAPI
DbgkpResumeProcess(
VOID
);
NTSTATUS
NTAPI
DbgkpSendApiMessage(
IN OUT PDBGKM_MSG ApiMsg,
IN BOOLEAN SuspendProcess
);
HANDLE
NTAPI
DbgkpSectionToFileHandle(
IN PVOID Section
);
VOID
NTAPI
DbgkCopyProcessDebugPort(
IN PEPROCESS Process,
IN PEPROCESS Parent
);
BOOLEAN
NTAPI
DbgkForwardException(
IN PEXCEPTION_RECORD ExceptionRecord,
IN BOOLEAN DebugPort,
IN BOOLEAN SecondChance
);
NTSTATUS
NTAPI
DbgkClearProcessDebugObject(
IN PEPROCESS Process,
IN PDEBUG_OBJECT SourceDebugObject
);
NTSTATUS
NTAPI
DbgkOpenProcessDebugPort(
IN PEPROCESS Process,
IN KPROCESSOR_MODE PreviousMode,
OUT HANDLE *DebugHandle
);
extern ULONG DbgkpTraceLevel;
extern POBJECT_TYPE DbgkDebugObjectType;
/* EOF */