75 Stack = ((AlignedEsp - 8) & ~3) - ContextLength;
88 TrapFrame->HardwareEsp =
Stack;
97 TrapFrame->ErrCode = 0;
142 ULONG GdiBatchCount = 0;
154 NewStack = (OldStack - ArgumentLength) & ~3;
167 *(
PULONG)(NewStack + 4) = RoutineIndex;
168 *(
PULONG)(NewStack + 8) = (NewStack + 24);
169 *(
PULONG)(NewStack + 12) = ArgumentLength;
289 DPRINT1(
"Thread wants too much stack\n");
297 CalloutFrame->CallbackStack = (
ULONG_PTR)CurrentThread->CallbackStack;
305 CurrentThread->CallbackStack = CalloutFrame;
328 *CallbackTrapFrame = *TrapFrame;
401 CalloutFrame = CurrentThread->CallbackStack;
402 if (CalloutFrame ==
NULL)
408 CallbackTrapFrame = CurrentThread->
TrapFrame;
459 TrapFrame->
Dr0 = CallbackTrapFrame->
Dr0;
460 TrapFrame->
Dr1 = CallbackTrapFrame->
Dr1;
461 TrapFrame->
Dr2 = CallbackTrapFrame->
Dr2;
462 TrapFrame->
Dr3 = CallbackTrapFrame->
Dr3;
463 TrapFrame->
Dr6 = CallbackTrapFrame->
Dr6;
464 TrapFrame->
Dr7 = CallbackTrapFrame->
Dr7;
487 CurrentThread->CallbackStack = (
PVOID)CalloutFrame->CallbackStack;
#define ALIGN_DOWN_BY(size, align)
NTSTATUS FASTCALL KiUserModeCallout(_Out_ PKCALLOUT_FRAME CalloutFrame)
NTSTATUS NTAPI KeUserModeCallback(IN ULONG RoutineIndex, IN PVOID Argument, IN ULONG ArgumentLength, OUT PVOID *Result, OUT PULONG ResultLength)
VOID NTAPI KiInitializeUserApc(_In_ PKEXCEPTION_FRAME ExceptionFrame, _Inout_ PKTRAP_FRAME TrapFrame, _In_ PKNORMAL_ROUTINE NormalRoutine, _In_ PVOID NormalContext, _In_ PVOID SystemArgument1, _In_ PVOID SystemArgument2)
NTSTATUS NTAPI NtCallbackReturn(_In_ PVOID Result, _In_ ULONG ResultLength, _In_ NTSTATUS CallbackStatus)
#define NT_SUCCESS(StatCode)
#define KeGetCurrentIrql()
VOID NTAPI ProbeForWrite(IN PVOID Address, IN SIZE_T Length, IN ULONG Alignment)
_In_ FLT_PREOP_CALLBACK_STATUS CallbackStatus
#define KeGetCurrentThread
NTSTATUS(NTAPI * PGDI_BATCHFLUSH_ROUTINE)(VOID)
#define EXCEPTION_EXECUTE_HANDLER
void __cdecl _disable(void)
void __cdecl _enable(void)
struct _KTRAP_FRAME KTRAP_FRAME
struct _KTRAP_FRAME * PKTRAP_FRAME
#define KeGetPreviousMode()
#define CONTEXT_ALIGNED_SIZE
struct _FX_SAVE_AREA FX_SAVE_AREA
VOID(NTAPI * PKNORMAL_ROUTINE)(IN PVOID NormalContext OPTIONAL, IN PVOID SystemArgument1 OPTIONAL, IN PVOID SystemArgument2 OPTIONAL)
#define CONTEXT_DEBUG_REGISTERS
FORCEINLINE BOOLEAN KiUserTrap(IN PKTRAP_FRAME TrapFrame)
FORCEINLINE PULONG_PTR KiGetUserModeStackAddress(void)
FORCEINLINE ULONG Ke386SanitizeFlags(IN ULONG Eflags, IN KPROCESSOR_MODE Mode)
DECLSPEC_NORETURN VOID FASTCALL KiServiceExit(IN PKTRAP_FRAME TrapFrame, IN NTSTATUS Status)
FORCEINLINE ULONG Ke386SanitizeSeg(IN ULONG Cs, IN KPROCESSOR_MODE Mode)
DECLSPEC_NORETURN VOID FASTCALL KiCallbackReturn(IN PVOID Stack, IN NTSTATUS Status)
VOID NTAPI KeTrapFrameToContext(IN PKTRAP_FRAME TrapFrame, IN PKEXCEPTION_FRAME ExceptionFrame, IN OUT PCONTEXT Context)
PVOID KeUserCallbackDispatcher
PGDI_BATCHFLUSH_ROUTINE KeGdiFlushUserBatch
NTSTATUS NTAPI KiCallUserMode(IN PVOID *OutputBuffer, IN PULONG OutputLength)
VOID NTAPI KiDispatchException(PEXCEPTION_RECORD ExceptionRecord, PKEXCEPTION_FRAME ExceptionFrame, PKTRAP_FRAME Tf, KPROCESSOR_MODE PreviousMode, BOOLEAN SearchFrames)
PVOID KeUserApcDispatcher
NTSTATUS NTAPI MmGrowKernelStack(IN PVOID StackPointer)
_Out_ PKAPC_STATE ApcState
#define STATUS_CALLBACK_POP_STACK
#define STATUS_STACK_OVERFLOW
#define STATUS_NO_CALLBACK_ACTIVE
#define _SEH2_GetExceptionCode()
#define _SEH2_EXCEPT(...)
#define _SEH2_GetExceptionInformation()
#define _SEH2_YIELD(__stmt)
VOID NTAPI KeBugCheckEx(_In_ ULONG BugCheckCode, _In_ ULONG_PTR BugCheckParameter1, _In_ ULONG_PTR BugCheckParameter2, _In_ ULONG_PTR BugCheckParameter3, _In_ ULONG_PTR BugCheckParameter4)
#define KERNEL_STACK_SIZE
union _FX_SAVE_AREA::@2463 U
volatile VOID * StackLimit
struct _EXCEPTION_REGISTRATION_RECORD FAR * ExceptionList
struct _EXCEPTION_REGISTRATION_RECORD * ExceptionList
#define FIELD_OFFSET(t, f)
#define RtlCopyMemory(Destination, Source, Length)
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_ PULONG ResultLength
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_In_ WDFREQUEST _In_ PIO_STACK_LOCATION Stack
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
_In_opt_ PVOID _In_opt_ PVOID SystemArgument1
_In_opt_ PVOID _In_opt_ PVOID _In_opt_ PVOID SystemArgument2