#include <ntoskrnl.h>
#include <debug.h>
Go to the source code of this file.
◆ NDEBUG
◆ KKINIT_FRAME
◆ KSWITCHFRAME
◆ KUINIT_FRAME
◆ PKKINIT_FRAME
◆ PKSWITCHFRAME
◆ PKUINIT_FRAME
◆ KiDispatchInterrupt()
Definition at line 295 of file thrdini.c.
void __cdecl _enable(void)
VOID NTAPI KiQuantumEnd(VOID)
struct _KTHREAD * NextThread
BOOLEAN FASTCALL KiSwapContext(IN KIRQL WaitIrql, IN PKTHREAD CurrentThread)
FORCEINLINE VOID KxQueueReadyThread(IN PKTHREAD Thread, IN PKPRCB Prcb)
struct _KTHREAD * CurrentThread
struct _SINGLE_LIST_ENTRY * Next
SINGLE_LIST_ENTRY DeferredReadyListHead
volatile ULONG DpcQueueDepth
void __cdecl _disable(void)
VOID FASTCALL KiRetireDpcList(IN PKPRCB Prcb)
Referenced by _HalpDispatchInterruptHandler(), HalpDispatchInterruptHandler(), HalpLowerIrql(), and KiInitializePcr().
◆ KiIdleLoop()
Definition at line 153 of file thrdini.c.
void __cdecl _enable(void)
FORCEINLINE struct _KPRCB * KeGetCurrentPrcb(VOID)
PROCESSOR_POWER_STATE PowerState
struct _KTHREAD * NextThread
BOOLEAN FASTCALL KiSwapContext(IN KIRQL WaitIrql, IN PKTHREAD CurrentThread)
FORCEINLINE VOID YieldProcessor(VOID)
struct _KTHREAD * CurrentThread
struct _SINGLE_LIST_ENTRY * Next
SINGLE_LIST_ENTRY DeferredReadyListHead
volatile ULONG DpcQueueDepth
PPROCESSOR_IDLE_FUNCTION IdleFunction
VOID FASTCALL HalClearSoftwareInterrupt(IN KIRQL Irql)
void __cdecl _disable(void)
VOID FASTCALL KiRetireDpcList(IN PKPRCB Prcb)
◆ KiInitializeContextThread()
Definition at line 53 of file thrdini.c.
104 ExceptionFrame->
Return = 0;
135 CtxSwitchFrame->R11 = (
ULONG)(ExceptionFrame ? ExceptionFrame : CtxSwitchFrame);
140 CtxSwitchFrame->R4 = (
ULONG)ContextPointer;
141 CtxSwitchFrame->R5 = (
ULONG)StartContext;
143 CtxSwitchFrame->R7 = (
ULONG)SystemRoutine;
VOID NTAPI KeContextToTrapFrame(PCONTEXT Context, PKEXCEPTION_FRAME ExeptionFrame, PKTRAP_FRAME TrapFrame, ULONG ContextFlags, KPROCESSOR_MODE PreviousMode)
KSWITCH_FRAME CtxSwitchFrame
KEXCEPTION_FRAME ExceptionFrame
_In_ ULONG _In_opt_ POBJECT_ATTRIBUTES _In_opt_ HANDLE _Out_opt_ PCLIENT_ID _In_ PKSTART_ROUTINE StartRoutine
VOID NTAPI KiThreadStartup(VOID)
struct _KKINIT_FRAME KKINIT_FRAME
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
struct _KUINIT_FRAME * PKUINIT_FRAME
struct _KUINIT_FRAME KUINIT_FRAME
struct _KKINIT_FRAME * PKKINIT_FRAME
#define RtlZeroMemory(Destination, Length)
KSWITCH_FRAME CtxSwitchFrame
◆ KiSwapContextEntry()
Definition at line 262 of file thrdini.c.
269 SwitchFrame->ApcBypassDisable = OldThreadAndApcFlag & 3;
277 DPRINT1(
"WMI Tracing not supported\n");
283 OldThread = (
PKTHREAD)(OldThreadAndApcFlag & ~3);
struct _KTHREAD * PKTHREAD
struct _KTHREAD * CurrentThread
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
VOID FASTCALL KiSwitchThreads(IN PKTHREAD OldThread, IN PKTHREAD NewThread)
PVOID PerfGlobalGroupMask
◆ KiSwapContextExit()
Definition at line 209 of file thrdini.c.
221 OldProcess = OldThread->ApcState.Process;
222 NewProcess = NewThread->
ApcState.Process;
223 if (OldProcess != NewProcess)
245 if (NewThread->
ApcState.KernelApcPending)
ULONG_PTR DirectoryTableBase
struct _KTHREAD * CurrentThread
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
VOID FASTCALL HalRequestSoftwareInterrupt(IN KIRQL Irql)
VOID NTAPI KeBugCheckEx(_In_ ULONG BugCheckCode, _In_ ULONG_PTR BugCheckParameter1, _In_ ULONG_PTR BugCheckParameter2, _In_ ULONG_PTR BugCheckParameter3, _In_ ULONG_PTR BugCheckParameter4)
FORCEINLINE VOID KeArmTranslationTableRegisterSet(IN ARM_TTB_REGISTER Ttb)
◆ KiSwitchThreads()
◆ KiThreadStartup()
Definition at line 63 of file thrdini.c.
PKSTART_ROUTINE StartRoutine
PKSYSTEM_ROUTINE SystemRoutine
VOID NTAPI KeBugCheck(ULONG BugCheckCode)
VOID FASTCALL KfLowerIrql(IN KIRQL NewIrql)
#define KeGetCurrentThread
Referenced by KiInitializeContextThread().