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
26#define X86_FEATURE_FPU 0x00000001
27#define X86_FEATURE_VME 0x00000002
28#define X86_FEATURE_DBG 0x00000004
29#define X86_FEATURE_PSE 0x00000008
30#define X86_FEATURE_TSC 0x00000010
31#define X86_FEATURE_PAE 0x00000040
32#define X86_FEATURE_CX8 0x00000100
33#define X86_FEATURE_APIC 0x00000200
34#define X86_FEATURE_SYSCALL 0x00000800
35#define X86_FEATURE_MTTR 0x00001000
36#define X86_FEATURE_PGE 0x00002000
37#define X86_FEATURE_CMOV 0x00008000
38#define X86_FEATURE_PAT 0x00010000
39#define X86_FEATURE_DS 0x00200000
40#define X86_FEATURE_MMX 0x00800000
41#define X86_FEATURE_FXSR 0x01000000
42#define X86_FEATURE_SSE 0x02000000
43#define X86_FEATURE_SSE2 0x04000000
44#define X86_FEATURE_HT 0x10000000
47#define X86_FEATURE_NX 0x00100000
98 return TrapFrame->
Eip;
122 return TrapFrame->
Ebp;
128#define KeGetTrapFrame(Thread) \
129 (PKTRAP_FRAME)((ULONG_PTR)((Thread)->InitialStack) - \
130 sizeof(KTRAP_FRAME) - \
131 sizeof(FX_SAVE_AREA))
133#define KeGetExceptionFrame(Thread) \
140#define KeGetContextSwitches(Prcb) \
141 CONTAINING_RECORD(Prcb, KIPCR, PrcbData)->ContextSwitches
147#define KiGetSecondLevelDCacheSize() ((PKIPCR)KeGetPcr())->SecondLevelCacheSize
153#define KeGetTrapFrameInterruptState(TrapFrame) \
154 BooleanFlagOn((TrapFrame)->EFlags, EFLAGS_INTERRUPT_MASK)
159#define KTE_SKIP_PM_BIT (((KTRAP_EXIT_SKIP_BITS) { { .SkipPreviousMode = TRUE } }).Bits)
160#define KTE_SKIP_SEG_BIT (((KTRAP_EXIT_SKIP_BITS) { { .SkipSegments = TRUE } }).Bits)
161#define KTE_SKIP_VOL_BIT (((KTRAP_EXIT_SKIP_BITS) { { .SkipVolatiles = TRUE } }).Bits)
179#define PFX_FLAG_ES 0x00000100
180#define PFX_FLAG_CS 0x00000200
181#define PFX_FLAG_SS 0x00000400
182#define PFX_FLAG_DS 0x00000800
183#define PFX_FLAG_FS 0x00001000
184#define PFX_FLAG_GS 0x00002000
185#define PFX_FLAG_OPER32 0x00004000
186#define PFX_FLAG_ADDR32 0x00008000
187#define PFX_FLAG_LOCK 0x00010000
188#define PFX_FLAG_REPNE 0x00020000
189#define PFX_FLAG_REP 0x00040000
213#define KiVdmSetVdmEFlags(x) InterlockedOr((PLONG)KiNtVdmState, (x));
214#define KiVdmClearVdmEFlags(x) InterlockedAnd((PLONG)KiNtVdmState, ~(x))
215#define KiCallVdmHandler(x) KiVdmOpcode##x(TrapFrame, Flags)
216#define KiCallVdmPrefixHandler(x) KiVdmOpcodePrefix(TrapFrame, Flags | x)
217#define KiVdmUnhandledOpcode(x) \
220 KiVdmOpcode##x(IN PKTRAP_FRAME TrapFrame, \
224 UNIMPLEMENTED_DBGBREAK(); \
465KiReportCpuFeatures(
VOID);
834 if (!
Thread->ApcState.UserApcPending)
break;
868 "jmp _KiSystemStartupBootStack@0"
876#elif defined(_MSC_VER)
879 mov esp, InitialStack
885#error Unknown Compiler
904#elif defined(_MSC_VER)
910#error Unsupported compiler
942 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
union _KGDTENTRY::@2426 HighWord
struct _KGDTENTRY::@2426::@2427 Bytes
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