#include <ntoskrnl.h>
#include <debug.h>
Go to the source code of this file.
|
VOID NTAPI | KiContinuePreviousModeUser (_In_ PCONTEXT Context, _Out_ PKEXCEPTION_FRAME ExceptionFrame, _Out_ PKTRAP_FRAME TrapFrame) |
|
NTSTATUS NTAPI | KiContinue (IN PCONTEXT Context, IN PKEXCEPTION_FRAME ExceptionFrame, IN PKTRAP_FRAME TrapFrame) |
|
NTSTATUS NTAPI | KiRaiseException (_In_ PEXCEPTION_RECORD ExceptionRecord, _In_ PCONTEXT Context, _Out_ PKEXCEPTION_FRAME ExceptionFrame, _Out_ PKTRAP_FRAME TrapFrame, _In_ BOOLEAN SearchFrames) |
|
NTSTATUS NTAPI | NtRaiseException (_In_ PEXCEPTION_RECORD ExceptionRecord, _In_ PCONTEXT Context, _In_ BOOLEAN FirstChance) |
|
NTSTATUS NTAPI | NtContinue (_In_ PCONTEXT Context, _In_ BOOLEAN TestAlert) |
|
◆ NDEBUG
◆ KiContinue()
Definition at line 42 of file except.c.
45{
49
50
52
53
55 {
56
58 {
59
61 ExceptionFrame,
62 TrapFrame);
63 }
64 else
65 {
66
68 ExceptionFrame,
69 TrapFrame,
72 }
73 }
75 {
76
78 }
80
81
83
84
86}
#define KeRaiseIrql(irql, oldIrql)
#define KeLowerIrql(oldIrql)
#define KeGetCurrentIrql()
#define EXCEPTION_EXECUTE_HANDLER
#define KeGetPreviousMode()
VOID NTAPI KeContextToTrapFrame(PCONTEXT Context, PKEXCEPTION_FRAME ExeptionFrame, PKTRAP_FRAME TrapFrame, ULONG ContextFlags, KPROCESSOR_MODE PreviousMode)
VOID NTAPI KiContinuePreviousModeUser(_In_ PCONTEXT Context, _Out_ PKEXCEPTION_FRAME ExceptionFrame, _Out_ PKTRAP_FRAME TrapFrame)
#define _SEH2_GetExceptionCode()
#define _SEH2_EXCEPT(...)
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
_In_ KPROCESSOR_MODE PreviousMode
Referenced by NtContinue().
◆ KiContinuePreviousModeUser()
Definition at line 20 of file except.c.
24{
26
27
31
32
34 ExceptionFrame,
35 TrapFrame,
38}
VOID NTAPI ProbeForRead(IN CONST VOID *Address, IN SIZE_T Length, IN ULONG Alignment)
#define RtlCopyMemory(Destination, Source, Length)
Referenced by KiContinue().
◆ KiRaiseException()
Definition at line 90 of file except.c.
96{
101
102
104 {
105
107 {
108
110
111
116
117
118 if ((ParameterCount = ExceptionRecord->NumberParameters) >
120 {
121
123 }
124
125
129
130
134 ExceptionRecord = &LocalExceptionRecord;
135
136
138 }
140 {
141
142 DPRINT1(
"KiRaiseException: Failed to Probe\n");
143
144
146 }
148 }
149
150
152 ExceptionFrame,
153 TrapFrame,
156
157
158 ExceptionRecord->ExceptionCode &= ~KI_EXCEPTION_INTERNAL;
160 ExceptionFrame,
161 TrapFrame,
163 SearchFrames);
164
165
167}
#define EXCEPTION_MAXIMUM_PARAMETERS
struct _EXCEPTION_RECORD EXCEPTION_RECORD
VOID NTAPI KiDispatchException(PEXCEPTION_RECORD ExceptionRecord, PKEXCEPTION_FRAME ExceptionFrame, PKTRAP_FRAME Tf, KPROCESSOR_MODE PreviousMode, BOOLEAN SearchFrames)
#define _SEH2_YIELD(__stmt)
#define FIELD_OFFSET(t, f)
#define STATUS_INVALID_PARAMETER
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Referenced by NtRaiseException().
◆ NtContinue()
Definition at line 216 of file except.c.
219{
223#ifdef _M_IX86
225#else
228#endif
229
230
232 TrapFrame =
Thread->TrapFrame;
234
235
238 {
241 }
242
243
244 if (TestAlert)
245 {
247 }
248
249
251}
#define NT_SUCCESS(StatCode)
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
#define KeGetCurrentThread
DECLSPEC_NORETURN VOID KiExceptionExit(_In_ PKTRAP_FRAME TrapFrame, _In_ PKEXCEPTION_FRAME ExceptionFrame)
#define KiGetLinkedTrapFrame(x)
BOOLEAN NTAPI KeTestAlertThread(IN KPROCESSOR_MODE AlertMode)
NTSTATUS NTAPI KiContinue(IN PCONTEXT Context, IN PKEXCEPTION_FRAME ExceptionFrame, IN PKTRAP_FRAME TrapFrame)
Referenced by KiUserExceptionDispatcher(), and START_TEST().
◆ NtRaiseException()
Definition at line 173 of file except.c.
177{
181#ifdef _M_IX86
183#else
186#endif
187
188
190 TrapFrame =
Thread->TrapFrame;
192
193
194#ifdef _M_IX86
196#endif
197
198
201 ExceptionFrame,
202 TrapFrame,
203 FirstChance);
205 {
206 DPRINT1(
"KiRaiseException failed. Status = 0x%lx\n",
Status);
208 }
209
210
212}
NTSTATUS NTAPI KiRaiseException(_In_ PEXCEPTION_RECORD ExceptionRecord, _In_ PCONTEXT Context, _Out_ PKEXCEPTION_FRAME ExceptionFrame, _Out_ PKTRAP_FRAME TrapFrame, _In_ BOOLEAN SearchFrames)
struct _EXCEPTION_REGISTRATION_RECORD FAR * ExceptionList
Referenced by KiUserExceptionDispatcher().