64 for (
j =
i = 0;
i < 256;
i++)
113 ExceptionRecord = &LocalExceptRecord;
159 TrapFrame->Rsp = UserRsp;
182 volatile CHAR *Pointer;
187 if (!Pointer)
return;
223 ListEntry = ListEntry->
Flink)
269 switch (ExceptionRecord->ExceptionCode)
326 ExceptionRecord->ExceptionCode,
327 (
ULONG_PTR)ExceptionRecord->ExceptionAddress,
387 DPRINT1(
"Kill %.16s, ExceptionCode: %lx, ExceptionAddress: %lx, BaseAddress: %lx\n",
389 ExceptionRecord->ExceptionCode,
390 ExceptionRecord->ExceptionAddress,
395 ExceptionRecord->ExceptionCode,
396 (
ULONG_PTR)ExceptionRecord->ExceptionAddress,
451 for (
i = 0;
i < 15;
i++)
456 if ((Ip[0] >= 0x40) && (Ip[0] <= 0x4F))
520 switch ((Ip[2] >> 3) & 0x7)
545 switch ((Ip[2] >> 3) & 0x7)
570 switch ((Ip[2] >> 3) & 0x7)
593 PUCHAR InstructionPointer;
597 InstructionPointer = (
PUCHAR)TrapFrame->Rip;
631 if (TrapFrame->SegCs & 3)
651 Instructions = (
PUCHAR)TrapFrame->Rip;
654 if (Instructions[0] == 0x48 && Instructions[1] == 0xCF)
662 if ((Instructions[0] == 0xF) &&
663 ((Instructions[1] == 0x30) ||
664 (Instructions[1] == 0x32)))
_In_ PVOID _In_ ULONG _Out_ PVOID _In_ ULONG _Inout_ PULONG _In_ KPROCESSOR_MODE PreviousMode
_Inout_ PIRP _In_ NTSTATUS ExceptionCode
BOOLEAN NTAPI DbgkForwardException(IN PEXCEPTION_RECORD ExceptionRecord, IN BOOLEAN DebugPort, IN BOOLEAN SecondChance)
#define IMAGE_DIRECTORY_ENTRY_DEBUG
#define RtlImageDirectoryEntryToData
VOID NTAPI ProbeForRead(IN CONST VOID *Address, IN SIZE_T Length, IN ULONG Alignment)
VOID NTAPI ProbeForWrite(IN PVOID Address, IN SIZE_T Length, IN ULONG Alignment)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
#define KeGetCurrentThread
#define EXCEPTION_EXECUTE_HANDLER
void __cdecl _disable(void)
void __cdecl _enable(void)
__INTRIN_INLINE void __lidt(void *Source)
BOOLEAN KdIgnoreUmExceptions
PKDEBUG_ROUTINE KiDebugRoutine
BOOLEAN NTAPI KdIsThisAKdTrap(IN PEXCEPTION_RECORD ExceptionRecord, IN PCONTEXT Context, IN KPROCESSOR_MODE PreviousMode)
struct _KUSER_EXCEPTION_STACK * PKUSER_EXCEPTION_STACK
struct _KUSER_EXCEPTION_STACK KUSER_EXCEPTION_STACK
FORCEINLINE struct _KPRCB * KeGetCurrentPrcb(VOID)
#define KI_EXCEPTION_ACCESS_VIOLATION
NTSYSAPI BOOLEAN NTAPI RtlDispatchException(_In_ PEXCEPTION_RECORD ExceptionRecord, _In_ PCONTEXT Context)
#define NtCurrentProcess()
#define TYPE_ALIGNMENT(t)
#define DECLSPEC_NORETURN
_In_ ULONG _In_ ULONG Offset
VOID KiDebugServiceTrap(VOID)
VOID KiOverflowTrap(VOID)
VOID KiGeneralProtectionFault(VOID)
VOID KiInvalidOpcodeFault(VOID)
VOID KiXmmException(VOID)
VOID KiNpxSegmentOverrunAbort(VOID)
VOID KiInvalidTssFault(VOID)
VOID KiDebugTrapOrFault(VOID)
VOID KiDivideErrorFault(VOID)
VOID KiAlignmentFault(VOID)
VOID KiApcInterrupt(VOID)
VOID KiSegmentNotPresentFault(VOID)
VOID KiIpiInterrupt(VOID)
VOID KiBreakpointTrap(VOID)
VOID KiDoubleFaultAbort(VOID)
VOID KiNpxNotAvailableFault(VOID)
VOID KiRaiseAssertion(VOID)
VOID KiDpcInterrupt(VOID)
VOID KiFloatingErrorFault(VOID)
VOID KiNmiInterrupt(VOID)
DECLSPEC_NORETURN VOID NTAPI KeBugCheckWithTf(ULONG BugCheckCode, ULONG_PTR BugCheckParameter1, ULONG_PTR BugCheckParameter2, ULONG_PTR BugCheckParameter3, ULONG_PTR BugCheckParameter4, PKTRAP_FRAME Tf)
VOID NTAPI KeTrapFrameToContext(IN PKTRAP_FRAME TrapFrame, IN PKEXCEPTION_FRAME ExceptionFrame, IN OUT PCONTEXT Context)
PVOID KeUserExceptionDispatcher
VOID NTAPI KeContextToTrapFrame(PCONTEXT Context, PKEXCEPTION_FRAME ExeptionFrame, PKTRAP_FRAME TrapFrame, ULONG ContextFlags, KPROCESSOR_MODE PreviousMode)
static BOOLEAN KiDispatchExceptionToUser(IN PKTRAP_FRAME TrapFrame, IN PCONTEXT Context, IN PEXCEPTION_RECORD ExceptionRecord)
KIDT_INIT KiInterruptInitTable[]
static VOID KiPageInDirectory(PVOID ImageBase, USHORT Directory)
static BOOLEAN KiIsPrivilegedInstruction(PUCHAR Ip, BOOLEAN Wow64)
KI_INTERRUPT_DISPATCH_ENTRY KiUnexpectedRange[256]
VOID NTAPI KiDispatchException(IN PEXCEPTION_RECORD ExceptionRecord, IN PKEXCEPTION_FRAME ExceptionFrame, IN PKTRAP_FRAME TrapFrame, IN KPROCESSOR_MODE PreviousMode, IN BOOLEAN FirstChance)
VOID DECLSPEC_NORETURN KiSystemFatalException(IN ULONG ExceptionCode, IN PKTRAP_FRAME TrapFrame)
VOID NTAPI KeInitExceptions(VOID)
NTSTATUS NTAPI KiXmmExceptionHandler(IN PKTRAP_FRAME TrapFrame)
NTSTATUS NTAPI KeRaiseUserException(IN NTSTATUS ExceptionCode)
VOID KiPrepareUserDebugData(void)
NTSTATUS NTAPI KiGeneralProtectionFaultHandler(IN PKTRAP_FRAME TrapFrame)
NTSTATUS NTAPI KiNpxNotAvailableFaultHandler(IN PKTRAP_FRAME TrapFrame)
static NTSTATUS KiGeneralProtectionFaultUserMode(_In_ PKTRAP_FRAME TrapFrame)
KDESCRIPTOR KiIdtDescriptor
#define STATUS_FLOAT_UNDERFLOW
#define STATUS_FLOAT_OVERFLOW
#define STATUS_FLOAT_DIVIDE_BY_ZERO
#define STATUS_PRIVILEGED_INSTRUCTION
#define STATUS_BREAKPOINT
#define STATUS_ACCESS_VIOLATION
#define STATUS_FLOAT_INVALID_OPERATION
#define STATUS_FLOAT_INEXACT_RESULT
#define IMAGE_DIRECTORY_ENTRY_EXCEPTION
#define _SEH2_GetExceptionCode()
#define _SEH2_EXCEPT(...)
#define _SEH2_GetExceptionInformation()
VOID NTAPI KeBugCheckEx(_In_ ULONG BugCheckCode, _In_ ULONG_PTR BugCheckParameter1, _In_ ULONG_PTR BugCheckParameter2, _In_ ULONG_PTR BugCheckParameter3, _In_ ULONG_PTR BugCheckParameter4)
base for all directory entries
MACHINE_FRAME MachineFrame
EXCEPTION_RECORD ExceptionRecord
struct _LIST_ENTRY * Flink
LIST_ENTRY InLoadOrderModuleList
PPEB ProcessEnvironmentBlock
#define RtlZeroMemory(Destination, Length)
#define CONTAINING_RECORD(address, type, field)
#define STATUS_UNSUCCESSFUL
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_In_ PKSERVICE_ROUTINE ServiceRoutine
#define PsGetCurrentProcess
#define _MM_EXCEPT_DIV_ZERO
#define _MM_EXCEPT_UNDERFLOW
#define _MM_EXCEPT_INEXACT
#define _MM_EXCEPT_OVERFLOW
#define _MM_EXCEPT_INVALID
#define _MM_MASK_DIV_ZERO
#define _MM_EXCEPT_DENORM
#define _MM_MASK_OVERFLOW
#define _MM_MASK_UNDERFLOW