#include <ntoskrnl.h>
#include <debug.h>
Go to the source code of this file.
|
VOID NTAPI | KiContinuePreviousModeUser (IN PCONTEXT Context, IN PKEXCEPTION_FRAME ExceptionFrame, IN 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, IN PKEXCEPTION_FRAME ExceptionFrame, IN 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 45 of file except.c.
48{
52
53
55
56
58 {
59
61 {
62
64 ExceptionFrame,
65 TrapFrame);
66 }
67 else
68 {
69#ifdef _M_AMD64
71#else
72
74 ExceptionFrame,
75 TrapFrame,
78#endif
79 }
80 }
82 {
83
85 }
87
88
90
91
93}
#define KeRaiseIrql(irql, oldIrql)
#define KeLowerIrql(oldIrql)
#define KeGetCurrentIrql()
#define EXCEPTION_EXECUTE_HANDLER
#define KeGetPreviousMode()
VOID KiSetTrapContext(_Out_ PKTRAP_FRAME TrapFrame, _In_ PCONTEXT Context, _In_ KPROCESSOR_MODE RequestorMode)
VOID NTAPI KeContextToTrapFrame(PCONTEXT Context, PKEXCEPTION_FRAME ExeptionFrame, PKTRAP_FRAME TrapFrame, ULONG ContextFlags, KPROCESSOR_MODE PreviousMode)
VOID NTAPI KiContinuePreviousModeUser(IN PCONTEXT Context, IN PKEXCEPTION_FRAME ExceptionFrame, IN 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.
23{
25
26
30
31#ifdef _M_AMD64
33#else
34
36 ExceptionFrame,
37 TrapFrame,
40#endif
41}
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 97 of file except.c.
102{
107
108
110 {
111
113 {
114
116
117
122
123
124 if ((ParameterCount = ExceptionRecord->NumberParameters) >
126 {
127
129 }
130
131
135
136
140 ExceptionRecord = &LocalExceptionRecord;
141
142
144 }
146 {
147
148 DPRINT1(
"KiRaiseException: Failed to Probe\n");
149
150
152 }
154 }
155
156
158 ExceptionFrame,
159 TrapFrame,
162
163
164 ExceptionRecord->ExceptionCode &= ~KI_EXCEPTION_INTERNAL;
166 ExceptionFrame,
167 TrapFrame,
169 SearchFrames);
170
171
173}
#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 220 of file except.c.
222{
226
227
229 TrapFrame =
Thread->TrapFrame;
231
232
235 {
236
238
239
241 }
242 else
243 {
244
246 }
247
248
250}
#define NT_SUCCESS(StatCode)
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
#define KeGetCurrentThread
#define KiGetLinkedTrapFrame(x)
BOOLEAN NTAPI KeTestAlertThread(IN KPROCESSOR_MODE AlertMode)
DECLSPEC_NORETURN VOID FASTCALL KiServiceExit(IN PKTRAP_FRAME TrapFrame, IN NTSTATUS Status)
NTSTATUS NTAPI KiContinue(IN PCONTEXT Context, IN PKEXCEPTION_FRAME ExceptionFrame, IN PKTRAP_FRAME TrapFrame)
Referenced by KiUserExceptionDispatcher(), and START_TEST().
◆ NtRaiseException()
Definition at line 179 of file except.c.
182{
186
187
189 TrapFrame =
Thread->TrapFrame;
191
192
193#ifdef _M_IX86
195#endif
196
197
201 TrapFrame,
202 FirstChance);
204 {
205
207 }
208 else
209 {
210
212 }
213
214
216}
NTSTATUS NTAPI KiRaiseException(IN PEXCEPTION_RECORD ExceptionRecord, IN PCONTEXT Context, IN PKEXCEPTION_FRAME ExceptionFrame, IN PKTRAP_FRAME TrapFrame, IN BOOLEAN SearchFrames)
struct _EXCEPTION_REGISTRATION_RECORD FAR * ExceptionList
Referenced by KiUserExceptionDispatcher().