31KiDpcInterruptHandler(
VOID)
80 KxQueueReadyThread(OldThread, Prcb);
153 CurrentThread->LargeStack =
TRUE;
160 Pcr->
TssBase->Rsp0 += StackOffset;
244 __writecr3(NewProcess->DirectoryTableBase[0]);
247 Pcr->
TssBase->IoMapBase = NewProcess->IopmOffset;
250#define MAX_SYSCALL_PARAMS 16
284 Thread->TrapFrame = TrapFrame;
291 TrapFrame->
Rsp = UserRsp;
304 ServiceNumber = (
ULONG)TrapFrame->
Rax;
325 if (GdiBatchCount != 0)
335 if (ServiceNumber >= DescriptorTable->
Limit)
354 Count = DescriptorTable->
Number[ServiceNumber] / 8;
360 case 16: KernelParams[15] = UserParams[15];
361 case 15: KernelParams[14] = UserParams[14];
362 case 14: KernelParams[13] = UserParams[13];
363 case 13: KernelParams[12] = UserParams[12];
364 case 12: KernelParams[11] = UserParams[11];
365 case 11: KernelParams[10] = UserParams[10];
366 case 10: KernelParams[9] = UserParams[9];
367 case 9: KernelParams[8] = UserParams[8];
368 case 8: KernelParams[7] = UserParams[7];
369 case 7: KernelParams[6] = UserParams[6];
370 case 6: KernelParams[5] = UserParams[5];
371 case 5: KernelParams[4] = UserParams[4];
391 return (
PVOID)DescriptorTable->
Base[ServiceNumber];
#define _Requires_lock_not_held_(lock)
#define KeLowerIrql(oldIrql)
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
KIRQL FASTCALL KfRaiseIrql(IN KIRQL NewIrql)
VOID FASTCALL HalClearSoftwareInterrupt(IN KIRQL Irql)
#define KeGetCurrentThread
#define EXCEPTION_EXECUTE_HANDLER
void __cdecl _disable(void)
void __cdecl _enable(void)
void __cdecl __debugbreak(void)
#define _AddressOfReturnAddress()
__INTRIN_INLINE void __writeeflags(uintptr_t Value)
__INTRIN_INLINE uintptr_t __readeflags(void)
__INTRIN_INLINE void __writecr3(unsigned int Data)
#define Add2Ptr(PTR, INC)
FORCEINLINE VOID KiAcquirePrcbLock(IN PKPRCB Prcb)
unsigned __int64 * PULONG64
FORCEINLINE struct _KPRCB * KeGetCurrentPrcb(VOID)
struct _KTRAP_FRAME * PKTRAP_FRAME
#define SERVICE_TABLE_SHIFT
#define SERVICE_TABLE_MASK
#define SERVICE_NUMBER_MASK
#define SERVICE_TABLE_TEST
#define DECLSPEC_NORETURN
_In_ ULONG _In_ ULONG Offset
FORCEINLINE VOID KiSendEOI(VOID)
BOOLEAN FASTCALL KiSwapContext(IN KIRQL WaitIrql, IN PKTHREAD CurrentThread)
VOID NTAPI KiQuantumEnd(VOID)
PGDI_BATCHFLUSH_ROUTINE KeGdiFlushUserBatch
VOID FASTCALL KiRetireDpcList(IN PKPRCB Prcb)
#define MAX_SYSCALL_PARAMS
NTSTATUS KiConvertToGuiThread(VOID)
NTSTATUS NTAPI NtSetLdtEntries(ULONG Selector1, LDT_ENTRY LdtEntry1, ULONG Selector2, LDT_ENTRY LdtEntry2)
NTSTATUS NtSyscallFailure(void)
DECLSPEC_NORETURN VOID KiIdleLoop(VOID)
PVOID KiSystemCallHandler(VOID)
VOID KiRetireDpcListInDpcStack(PKPRCB Prcb, PVOID DpcStack)
NTSTATUS NTAPI NtVdmControl(IN ULONG ControlCode, IN PVOID ControlData)
PVOID KiSwitchKernelStackHelper(LONG_PTR StackOffset, PVOID OldStackBase)
PVOID NTAPI KiSwitchKernelStack(PVOID StackBase, PVOID StackLimit)
VOID KiSystemService(IN PKTHREAD Thread, IN PKTRAP_FRAME TrapFrame, IN ULONG Instruction)
VOID NTAPI KiSwapProcess(IN PKPROCESS NewProcess, IN PKPROCESS OldProcess)
#define STATUS_INVALID_SYSTEM_SERVICE
#define STATUS_NOT_IMPLEMENTED
#define _SEH2_GetExceptionCode()
#define _SEH2_EXCEPT(...)
volatile ULONG DpcQueueDepth
PROCESSOR_POWER_STATE PowerState
struct _KTHREAD * CurrentThread
struct _KTHREAD * NextThread
SINGLE_LIST_ENTRY DeferredReadyListHead
volatile VOID * StackLimit
PPROCESSOR_IDLE_FUNCTION IdleFunction
struct _SINGLE_LIST_ENTRY * Next
#define FIELD_OFFSET(t, f)
#define RtlCopyMemory(Destination, Source, Length)
#define STATUS_UNSUCCESSFUL
_IRQL_requires_same_ typedef _In_ ULONG ControlCode
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql