31 KiDpcInterruptHandler(
VOID)
80 KxQueueReadyThread(OldThread, Prcb);
151 CurrentThread->LargeStack =
TRUE;
158 Pcr->
TssBase->Rsp0 += StackOffset;
239 __writecr3(NewProcess->DirectoryTableBase[0]);
242 Pcr->
TssBase->IoMapBase = NewProcess->IopmOffset;
245 #define MAX_SYSCALL_PARAMS 16 279 Thread->TrapFrame = TrapFrame;
286 TrapFrame->
Rsp = UserRsp;
299 ServiceNumber = (
ULONG)TrapFrame->
Rax;
320 if (GdiBatchCount != 0)
330 if (ServiceNumber >= DescriptorTable->
Limit)
349 Count = DescriptorTable->
Number[ServiceNumber] / 8;
355 case 16: KernelParams[15] = UserParams[15];
356 case 15: KernelParams[14] = UserParams[14];
357 case 14: KernelParams[13] = UserParams[13];
358 case 13: KernelParams[12] = UserParams[12];
359 case 12: KernelParams[11] = UserParams[11];
360 case 11: KernelParams[10] = UserParams[10];
361 case 10: KernelParams[9] = UserParams[9];
362 case 9: KernelParams[8] = UserParams[8];
363 case 8: KernelParams[7] = UserParams[7];
364 case 7: KernelParams[6] = UserParams[6];
365 case 6: KernelParams[5] = UserParams[5];
366 case 5: KernelParams[4] = UserParams[4];
386 return (
PVOID)DescriptorTable->
Base[ServiceNumber];
DECLSPEC_NORETURN VOID KiIdleLoop(VOID)
NTSTATUS NTAPI NtVdmControl(IN ULONG ControlCode, IN PVOID ControlData)
#define SERVICE_TABLE_SHIFT
#define Add2Ptr(PTR, INC)
#define SERVICE_TABLE_MASK
void __cdecl _enable(void)
FORCEINLINE struct _KPRCB * KeGetCurrentPrcb(VOID)
VOID KiRetireDpcListInDpcStack(PKPRCB Prcb, PVOID DpcStack)
void * _AddressOfReturnAddress(void)
VOID NTAPI KiQuantumEnd(VOID)
NTSTATUS KiConvertToGuiThread(VOID)
PROCESSOR_POWER_STATE PowerState
#define SERVICE_NUMBER_MASK
void __cdecl __debugbreak(void)
struct _KTHREAD * NextThread
#define DECLSPEC_NORETURN
BOOLEAN FASTCALL KiSwapContext(IN KIRQL WaitIrql, IN PKTHREAD CurrentThread)
FORCEINLINE VOID YieldProcessor(VOID)
return STATUS_NOT_IMPLEMENTED
__INTRIN_INLINE void __writecr3(unsigned int Data)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
NTSTATUS NTAPI NtSetLdtEntries(ULONG Selector1, LDT_ENTRY LdtEntry1, ULONG Selector2, LDT_ENTRY LdtEntry2)
struct _KTHREAD * CurrentThread
FORCEINLINE VOID KiAcquirePrcbLock(IN PKPRCB Prcb)
#define SERVICE_TABLE_TEST
_IRQL_requires_same_ typedef _In_ ULONG ControlCode
NTSTATUS NtSyscallFailure(void)
KIRQL FASTCALL KfRaiseIrql(IN KIRQL NewIrql)
_Requires_lock_not_held_(Prcb->PrcbLock) VOID NTAPI KiDpcInterruptHandler(VOID)
PVOID KiSystemCallHandler(VOID)
#define EXCEPTION_EXECUTE_HANDLER
volatile VOID * StackLimit
#define MAX_SYSCALL_PARAMS
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
#define STATUS_UNSUCCESSFUL
struct _SINGLE_LIST_ENTRY * Next
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
_In_ USHORT _In_ CCHAR StackSize
FORCEINLINE VOID KiSendEOI(VOID)
_In_ ULONG _In_ ULONG Offset
SINGLE_LIST_ENTRY DeferredReadyListHead
volatile ULONG DpcQueueDepth
FORCEINLINE struct _TEB * NtCurrentTeb(VOID)
PGDI_BATCHFLUSH_ROUTINE KeGdiFlushUserBatch
#define FIELD_OFFSET(t, f)
PPROCESSOR_IDLE_FUNCTION IdleFunction
VOID FASTCALL HalClearSoftwareInterrupt(IN KIRQL Irql)
void __cdecl _disable(void)
PVOID NTAPI KiSwitchKernelStack(PVOID StackBase, PVOID StackLimit)
#define STATUS_INVALID_SYSTEM_SERVICE
#define RtlCopyMemory(Destination, Source, Length)
unsigned __int64 * PULONG64
#define _SEH2_EXCEPT(...)
struct _KTRAP_FRAME * PKTRAP_FRAME
#define _SEH2_GetExceptionCode()
PVOID KiSwitchKernelStackHelper(LONG_PTR StackOffset, PVOID OldStackBase)
#define KeGetCurrentThread
VOID NTAPI KeLowerIrql(KIRQL NewIrql)
VOID NTAPI KiSwapProcess(IN PKPROCESS NewProcess, IN PKPROCESS OldProcess)
VOID KiSystemService(IN PKTHREAD Thread, IN PKTRAP_FRAME TrapFrame, IN ULONG Instruction)
VOID FASTCALL KiRetireDpcList(IN PKPRCB Prcb)