141 FxSaveFormat->
MXCsr = 0x1F80;
146 Context->FloatSave.ControlWord = 0x27F;
147 Context->FloatSave.StatusWord = 0;
148 Context->FloatSave.TagWord = -1;
149 Context->FloatSave.ErrorOffset = 0;
150 Context->FloatSave.ErrorSelector = 0;
151 Context->FloatSave.DataOffset =0;
152 Context->FloatSave.DataSelector = 0;
156 Context->FloatSave.Cr0NpxState = 0;
177 Context->ContextFlags | ContextFlags,
327 OldProcess = OldThread->ApcState.Process;
328 NewProcess = NewThread->
ApcState.Process;
329 if (OldProcess != NewProcess)
334 if (NewProcess->LdtDescriptor.LimitLow)
337 ((
PULONG)&NewProcess->LdtDescriptor)[0],
338 ((
PULONG)&NewProcess->LdtDescriptor)[1]);
339 Ke386SetLocalDescriptorTable(
KGDT_LDT);
343 Ke386SetLocalDescriptorTable(0);
373 if (Pcr->PrcbData.DpcRoutineActive)
384 if (NewThread->
ApcState.KernelApcPending)
390 if (SwitchFrame->ApcBypassDisable)
411 SwitchFrame->ApcBypassDisable = OldThreadAndApcFlag & 3;
419 DPRINT1(
"WMI Tracing not supported\n");
424 OldThread = (
PKTHREAD)(OldThreadAndApcFlag & ~3);
498 KxQueueReadyThread(OldThread, Prcb);
VOID NTAPI KeContextToTrapFrame(PCONTEXT Context, PKEXCEPTION_FRAME ExeptionFrame, PKTRAP_FRAME TrapFrame, ULONG ContextFlags, KPROCESSOR_MODE PreviousMode)
VOID FASTCALL KiSwapContextEntry(IN PKSWITCHFRAME SwitchFrame, IN ULONG_PTR OldThreadAndApcFlag)
KSWITCHFRAME CtxSwitchFrame
#define CONTEXT_EXTENDED_REGISTERS
ULONG_PTR DirectoryTableBase
union _FX_SAVE_AREA::@2406 U
_In_ ULONG _In_opt_ POBJECT_ATTRIBUTES _In_opt_ HANDLE _Out_opt_ PCLIENT_ID _In_ PKSTART_ROUTINE StartRoutine
__in PVOID ContextPointer
PKSTART_ROUTINE StartRoutine
void __cdecl _enable(void)
struct _FXSAVE_FORMAT * PFXSAVE_FORMAT
FORCEINLINE struct _KPRCB * KeGetCurrentPrcb(VOID)
#define CONTEXT_FLOATING_POINT
VOID NTAPI KiQuantumEnd(VOID)
PKSYSTEM_ROUTINE SystemRoutine
PROCESSOR_POWER_STATE PowerState
VOID NTAPI KiInitializeContextThread(IN PKTHREAD Thread, IN PKSYSTEM_ROUTINE SystemRoutine, IN PKSTART_ROUTINE StartRoutine, IN PVOID StartContext, IN PCONTEXT Context)
struct _KTHREAD * NextThread
#define DECLSPEC_NORETURN
KSWITCH_FRAME CtxSwitchFrame
BOOLEAN FASTCALL KiSwapContext(IN KIRQL WaitIrql, IN PKTHREAD CurrentThread)
FORCEINLINE VOID YieldProcessor(VOID)
VOID NTAPI KiThreadStartup(VOID)
struct _KSWITCHFRAME * PKSWITCHFRAME
struct _KTHREAD * PKTHREAD
__INTRIN_INLINE void __writecr3(unsigned int Data)
struct _KTRAP_FRAME KTRAP_FRAME
VOID(NTAPI * PKSYSTEM_ROUTINE)(PKSTART_ROUTINE StartRoutine, PVOID StartContext)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
KSTART_ROUTINE * PKSTART_ROUTINE
VOID KeSetGdtSelector(ULONG Entry, ULONG Value1, ULONG Value2)
DECLSPEC_NORETURN VOID NTAPI KeBugCheck(ULONG BugCheckCode)
VOID FASTCALL KiRetireDpcListInDpcStack(IN PKPRCB Prcb, IN PVOID DpcStack)
struct _KTHREAD * CurrentThread
__INTRIN_INLINE void __writecr0(unsigned int Data)
KSWITCH_FRAME CtxSwitchFrame
struct _KSTART_FRAME KSTART_FRAME
DECLSPEC_NORETURN VOID KiIdleLoop(VOID)
FORCEINLINE PFX_SAVE_AREA KiGetThreadNpxArea(IN PKTHREAD Thread)
struct _EXCEPTION_REGISTRATION_RECORD * ExceptionList
struct _KKINIT_FRAME KKINIT_FRAME
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
struct _EXCEPTION_REGISTRATION_RECORD FAR * ExceptionList
struct _SINGLE_LIST_ENTRY * Next
VOID NTAPI KiDispatchInterrupt(VOID)
#define CONTEXT_DEBUG_REGISTERS
struct _KUINIT_FRAME * PKUINIT_FRAME
__INTRIN_INLINE unsigned long __readcr0(void)
struct _KUINIT_FRAME KUINIT_FRAME
struct _KSTART_FRAME * PKSTART_FRAME
struct _KKINIT_FRAME * PKKINIT_FRAME
ULONG PreviousPreviousMode
SINGLE_LIST_ENTRY DeferredReadyListHead
VOID FASTCALL HalRequestSoftwareInterrupt(IN KIRQL Irql)
VOID FASTCALL KiSwitchThreads(IN PKTHREAD OldThread, IN PKTHREAD NewThread)
volatile ULONG DpcQueueDepth
BOOLEAN FASTCALL KiSwapContextExit(IN PKTHREAD OldThread, IN PKSWITCHFRAME SwitchFrame)
VOID FASTCALL KfLowerIrql(IN KIRQL NewIrql)
FORCEINLINE VOID KiSetTebBase(PKPCR Pcr, PNT_TIB TebAddress)
#define EXCEPTION_CHAIN_END
#define FIELD_OFFSET(t, f)
#define NPX_STATE_NOT_LOADED
PPROCESSOR_IDLE_FUNCTION IdleFunction
PVOID PerfGlobalGroupMask
VOID FASTCALL HalClearSoftwareInterrupt(IN KIRQL Irql)
__GNU_EXTENSION typedef unsigned __int64 * PULONGLONG
void __cdecl _disable(void)
struct _KSWITCHFRAME KSWITCHFRAME
#define RtlZeroMemory(Destination, Length)
#define RtlCopyMemory(Destination, Source, Length)
#define KTRAP_FRAME_LENGTH
#define KeGetCurrentThread
#define KeGetTrapFrame(Thread)
VOID NTAPI KeBugCheckEx(_In_ ULONG BugCheckCode, _In_ ULONG_PTR BugCheckParameter1, _In_ ULONG_PTR BugCheckParameter2, _In_ ULONG_PTR BugCheckParameter3, _In_ ULONG_PTR BugCheckParameter4)
VOID FASTCALL KiRetireDpcList(IN PKPRCB Prcb)
KSWITCHFRAME CtxSwitchFrame