15#define DR_MASK(x) (1 << (x))
16#define DR_REG_MASK 0x4F
21#define KD_BREAKPOINT_TYPE UCHAR
22#define KD_BREAKPOINT_SIZE sizeof(UCHAR)
23#define KD_BREAKPOINT_VALUE 0xCC
74 return TrapFrame->
Eip;
98 return TrapFrame->
Ebp;
104#define KeGetTrapFrame(Thread) \
105 (PKTRAP_FRAME)((ULONG_PTR)((Thread)->InitialStack) - \
106 sizeof(KTRAP_FRAME) - \
107 sizeof(FX_SAVE_AREA))
109#define KeGetExceptionFrame(Thread) \
116#define KeGetContextSwitches(Prcb) \
117 CONTAINING_RECORD(Prcb, KIPCR, PrcbData)->ContextSwitches
123#define KiGetSecondLevelDCacheSize() ((PKIPCR)KeGetPcr())->SecondLevelCacheSize
129#define KeGetTrapFrameInterruptState(TrapFrame) \
130 BooleanFlagOn((TrapFrame)->EFlags, EFLAGS_INTERRUPT_MASK)
135#define KTE_SKIP_PM_BIT (((KTRAP_EXIT_SKIP_BITS) { { .SkipPreviousMode = TRUE } }).Bits)
136#define KTE_SKIP_SEG_BIT (((KTRAP_EXIT_SKIP_BITS) { { .SkipSegments = TRUE } }).Bits)
137#define KTE_SKIP_VOL_BIT (((KTRAP_EXIT_SKIP_BITS) { { .SkipVolatiles = TRUE } }).Bits)
155#define PFX_FLAG_ES 0x00000100
156#define PFX_FLAG_CS 0x00000200
157#define PFX_FLAG_SS 0x00000400
158#define PFX_FLAG_DS 0x00000800
159#define PFX_FLAG_FS 0x00001000
160#define PFX_FLAG_GS 0x00002000
161#define PFX_FLAG_OPER32 0x00004000
162#define PFX_FLAG_ADDR32 0x00008000
163#define PFX_FLAG_LOCK 0x00010000
164#define PFX_FLAG_REPNE 0x00020000
165#define PFX_FLAG_REP 0x00040000
189#define KiVdmSetVdmEFlags(x) InterlockedOr((PLONG)KiNtVdmState, (x));
190#define KiVdmClearVdmEFlags(x) InterlockedAnd((PLONG)KiNtVdmState, ~(x))
191#define KiCallVdmHandler(x) KiVdmOpcode##x(TrapFrame, Flags)
192#define KiCallVdmPrefixHandler(x) KiVdmOpcodePrefix(TrapFrame, Flags | x)
193#define KiVdmUnhandledOpcode(x) \
196 KiVdmOpcode##x(IN PKTRAP_FRAME TrapFrame, \
200 UNIMPLEMENTED_DBGBREAK(); \
804 if (!
Thread->ApcState.UserApcPending)
break;
838 "jmp _KiSystemStartupBootStack@0"
846#elif defined(_MSC_VER)
849 mov esp, InitialStack
855#error Unknown Compiler
874#elif defined(_MSC_VER)
880#error Unsupported compiler
912 DbgPrint(
"Interrupts: %u System Calls: %u Context Switches: %u\n",
UINT32 void void ** ReturnValue
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn UINT32 *TableIdx UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 ACPI_BUFFER *RetPathPtr ACPI_OBJECT_HANDLER Handler
DECLSPEC_NORETURN VOID NTAPI KiSystemStartupBootStack(VOID)
#define MM_HIGHEST_USER_ADDRESS
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
VOID NTAPI HalEndSystemInterrupt(IN KIRQL OldIrql, IN PKTRAP_FRAME TrapFrame)
VOID FASTCALL KfLowerIrql(IN KIRQL NewIrql)
KIRQL FASTCALL KfRaiseIrql(IN KIRQL NewIrql)
#define KeGetCurrentThread
void __cdecl _disable(void)
void __cdecl _enable(void)
PPC_QUAL void __wbinvd(void)
PPC_QUAL unsigned long long __rdtsc(void)
__INTRIN_INLINE unsigned long __readcr3(void)
__INTRIN_INLINE uintptr_t __readeflags(void)
__INTRIN_INLINE void __invlpg(void *Address)
__INTRIN_INLINE void __writecr3(unsigned int Data)
#define KTRAP_FRAME_LENGTH
#define MAXIMUM_IDTVECTOR
#define KTRAP_FRAME_ALIGN
#define EFLAGS_INTERRUPT_MASK
#define EFLAGS_USER_SANITIZE
FORCEINLINE struct _KPRCB * KeGetCurrentPrcb(VOID)
#define HalVectorToIDTEntry
_In_ HANDLE _Outptr_result_bytebuffer_ ViewSize PVOID * BaseAddress
#define DECLSPEC_NORETURN
#define UNREFERENCED_PARAMETER(P)
_In_ ULONG _In_ ULONG Offset
_In_ ULONG _In_ ULONG _In_ ULONG Length
FORCEINLINE ULONG_PTR KeGetTrapFrameFrameRegister(PKTRAP_FRAME TrapFrame)
DECLSPEC_NORETURN VOID KiSwitchToBootStack(IN ULONG_PTR InitialStack)
#define KeGetContextSwitches(Prcb)
FORCEINLINE ULONG_PTR KeGetContextFrameRegister(PCONTEXT Context)
FORCEINLINE VOID KeInvalidateTlbEntry(IN PVOID Address)
FORCEINLINE VOID KeFlushProcessTb(VOID)
FORCEINLINE VOID KeSetContextFrameRegister(PCONTEXT Context, ULONG_PTR Frame)
FORCEINLINE ULONG_PTR KeGetTrapFrameStackRegister(PKTRAP_FRAME TrapFrame)
VOID KiGetCacheInformation(VOID)
FORCEINLINE BOOLEAN KeDisableInterrupts(VOID)
ULONG KiGetFeatureBits(VOID)
FORCEINLINE PVOID KeQueryInterruptHandler(IN ULONG Vector)
FORCEINLINE VOID KeRestoreInterrupts(BOOLEAN WereEnabled)
VOID KiSetProcessorType(VOID)
FORCEINLINE VOID KiRundownThread(IN PKTHREAD Thread)
FORCEINLINE BOOLEAN KiUserTrap(IN PKTRAP_FRAME TrapFrame)
FORCEINLINE VOID KeSweepICache(IN PVOID BaseAddress, IN SIZE_T FlushSize)
FORCEINLINE VOID KeRegisterInterruptHandler(IN ULONG Vector, IN PVOID Handler)
FORCEINLINE PULONG_PTR KiGetUserModeStackAddress(void)
#define KeSetContextReturnRegister(Context, ReturnValue)
#define KiGetLinkedTrapFrame(x)
#define KeSetContextPc(Context, ProgramCounter)
#define KeGetContextPc(Context)
#define KeGetContextReturnRegister(Context)
#define KeGetTrapFramePc(TrapFrame)
#define KiEndInterrupt(x, y)
struct _LARGE_IDENTITY_MAP LARGE_IDENTITY_MAP
BOOLEAN NTAPI VdmDispatchPageFault(_In_ PKTRAP_FRAME TrapFrame)
BOOLEAN NTAPI VdmDispatchBop(IN PKTRAP_FRAME TrapFrame)
FORCEINLINE ULONG Ke386SanitizeFlags(IN ULONG Eflags, IN KPROCESSOR_MODE Mode)
FORCEINLINE DECLSPEC_NORETURN VOID KiDispatchException2Args(IN NTSTATUS Code, IN ULONG_PTR Address, IN ULONG P1, IN ULONG P2, IN PKTRAP_FRAME TrapFrame)
VOID NTAPI KiInitializePAT(VOID)
VOID NTAPI ExpInterlockedPopEntrySListResume(VOID)
BOOLEAN FASTCALL KiVdmOpcodePrefix(IN PKTRAP_FRAME TrapFrame, IN ULONG Flags)
DECLSPEC_NORETURN VOID NTAPI KiDispatchExceptionFromTrapFrame(IN NTSTATUS Code, IN ULONG Flags, IN ULONG_PTR Address, IN ULONG ParameterCount, IN ULONG_PTR Parameter1, IN ULONG_PTR Parameter2, IN ULONG_PTR Parameter3, IN PKTRAP_FRAME TrapFrame)
VOID FASTCALL Ki386InitializeTss(IN PKTSS Tss, IN PKIDTENTRY Idt, IN PKGDTENTRY Gdt)
BOOLEAN FASTCALL Ki386HandleOpcodeV86(IN PKTRAP_FRAME TrapFrame)
ULONG_PTR NTAPI Ki386EnableTargetLargePage(IN ULONG_PTR Context)
VOID NTAPI KiFlushNPXState(IN FLOATING_SAVE_AREA *SaveArea)
ULONG KiFastSystemCallDisable
struct _KV86_FRAME KV86_FRAME
VOID __cdecl KiTrap13(VOID)
UCHAR KiDebugRegisterContextOffsets[9]
VOID __cdecl KiTrap02(VOID)
UCHAR KiDebugRegisterTrapOffsets[9]
VOID __cdecl KiTrap08(VOID)
struct _KV8086_STACK_FRAME KV8086_STACK_FRAME
union _KTRAP_EXIT_SKIP_BITS * PKTRAP_EXIT_SKIP_BITS
BOOLEAN KeI386VirtualIntExtensions
struct _LARGE_IDENTITY_MAP * PLARGE_IDENTITY_MAP
ULONG KeI386EFlagsAndMaskV86
struct _FLOATING_SAVE_CONTEXT * PFLOATING_SAVE_CONTEXT
NTSTATUS NTAPI Ke386GetGdtEntryThread(IN PKTHREAD Thread, IN ULONG Offset, IN PKGDTENTRY Descriptor)
DECLSPEC_NORETURN VOID FASTCALL KiEoiHelper(IN PKTRAP_FRAME TrapFrame)
union _KTRAP_EXIT_SKIP_BITS KTRAP_EXIT_SKIP_BITS
VOID __cdecl KiFastCallEntry(VOID)
VOID NTAPI KiI386PentiumLockErrataFixup(VOID)
BOOLEAN NTAPI KiIsNpxErrataPresent(VOID)
CHAR KiSystemCallExitBranch[]
struct _KV86_FRAME * PKV86_FRAME
ULONG_PTR NTAPI Ki386EnableXMMIExceptions(IN ULONG_PTR Context)
VOID NTAPI KiAmdK6InitializeMTRR(VOID)
ULONG_PTR NTAPI Ki386EnableFxsr(IN ULONG_PTR Context)
VOID __cdecl ReadBatch(VOID)
BOOLEAN NTAPI Ki386CreateIdentityMap(IN PLARGE_IDENTITY_MAP IdentityMap, IN PVOID StartPtr, IN ULONG Length)
FORCEINLINE DECLSPEC_NORETURN VOID KiDispatchException0Args(IN NTSTATUS Code, IN ULONG_PTR Address, IN PKTRAP_FRAME TrapFrame)
ULONG KeI386EFlagsOrMaskV86
VOID NTAPI Ki386EnableCurrentLargePage(IN ULONG_PTR StartAddress, IN ULONG Cr3)
VOID NTAPI KiRestoreFastSyscallReturnState(VOID)
FORCEINLINE VOID KiSetTebBase(PKPCR Pcr, PNT_TIB TebAddress)
BOOLEAN KiI386PentiumLockErrataPresent
VOID __cdecl CopyParams(VOID)
ULONG_PTR NTAPI Ki386EnableGlobalPage(IN ULONG_PTR Context)
VOID NTAPI Ki386FreeIdentityMap(IN PLARGE_IDENTITY_MAP IdentityMap)
VOID NTAPI KiInitializeMTRR(IN BOOLEAN FinalCpu)
NTSTATUS NTAPI KiSystemCallTrampoline(_In_ PVOID Handler, _In_ PVOID Arguments, _In_ ULONG StackBytes)
VOID NTAPI KiSetCR0Bits(VOID)
VOID NTAPI Ki386SetupAndExitToV86Mode(OUT PTEB VdmTeb)
FORCEINLINE DECLSPEC_NORETURN VOID KiDispatchException1Args(IN NTSTATUS Code, IN ULONG_PTR Address, IN ULONG P1, IN PKTRAP_FRAME TrapFrame)
KIDTENTRY KiIdt[MAXIMUM_IDTVECTOR+1]
VOID NTAPI Ki386AdjustEsp0(IN PKTRAP_FRAME TrapFrame)
FORCEINLINE PFX_SAVE_AREA KiGetThreadNpxArea(IN PKTHREAD Thread)
FORCEINLINE PVOID Ke386SanitizeDr(IN PVOID DrAddress, IN KPROCESSOR_MODE Mode)
ULONG_PTR FASTCALL KiExitV86Mode(IN PKTRAP_FRAME TrapFrame)
NTSTATUS NTAPI KiConvertToGuiThread(VOID)
struct _FLOATING_SAVE_CONTEXT FLOATING_SAVE_CONTEXT
FORCEINLINE DECLSPEC_NORETURN VOID KiIret(VOID)
struct _KV8086_STACK_FRAME * PKV8086_STACK_FRAME
FORCEINLINE VOID Ke386SetGdtEntryBase(PKGDTENTRY GdtEntry, PVOID BaseAddress)
BOOLEAN NTAPI KiIsNpxPresent(VOID)
VOID FASTCALL Ki386BiosCallReturnAddress(IN PKTRAP_FRAME TrapFrame)
KDESCRIPTOR KiIdtDescriptor
ULONG_PTR NTAPI Ki386EnableDE(IN ULONG_PTR Context)
FORCEINLINE ULONG Ke386SanitizeSeg(IN ULONG Cs, IN KPROCESSOR_MODE Mode)
VOID NTAPI KeI386VdmInitialize(VOID)
FORCEINLINE VOID KiCheckForApcDelivery(IN PKTRAP_FRAME TrapFrame)
VOID NTAPI ExpInterlockedPopEntrySListFault(VOID)
VOID NTAPI KiThreadStartup(VOID)
VOID NTAPI KiDeliverApc(IN KPROCESSOR_MODE DeliveryMode, IN PKEXCEPTION_FRAME ExceptionFrame, IN PKTRAP_FRAME TrapFrame)
__asm__(".p2align 4, 0x90\n" ".seh_proc __seh2_global_filter_func\n" "__seh2_global_filter_func:\n" "\tpush %rbp\n" "\t.seh_pushreg %rbp\n" "\tsub $32, %rsp\n" "\t.seh_stackalloc 32\n" "\t.seh_endprologue\n" "\tmov %rdx, %rbp\n" "\tjmp *%rax\n" "__seh2_global_filter_func_exit:\n" "\t.p2align 4\n" "\tadd $32, %rsp\n" "\tpop %rbp\n" "\tret\n" "\t.seh_endproc")
static void push(calc_node_t *op)
base of all file and directory entries
PFX_SAVE_AREA PfxSaveArea
struct _KGDTENTRY::@2420::@2421 Bytes
union _KGDTENTRY::@2420 HighWord
ULONG PreviousPreviousMode
PHARDWARE_PTE TopLevelDirectory
_In_ UCHAR _In_ UCHAR _In_ ULONG Code
_Must_inspect_result_ _In_ WDFIORESLIST _In_ PIO_RESOURCE_DESCRIPTOR Descriptor
_Must_inspect_result_ _In_ ULONG Flags
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql