62 if (SavedApcState == &
Thread->SavedApcState)
75 ListHead = &
Process->ReadyListHead;
76 NextEntry = ListHead->
Flink;
77 while (NextEntry != ListHead)
90 NextEntry = ListHead->
Flink;
108 DPRINT1(
"Errr. ReactOS doesn't support paging out processes yet...\n");
130 Process->Header.SignalState = 0;
137 Process->DirectoryTableBase[0] = DirectoryTableBase[0];
138 Process->DirectoryTableBase[1] = DirectoryTableBase[1];
180 Process->IdealNode = IdealNode;
207 OldState =
Process->Header.SignalState;
242 Process->QuantumReset = Quantum;
245 ListHead = &
Process->ThreadListHead;
246 NextEntry = ListHead->
Flink;
247 while (ListHead != NextEntry)
253 Thread->QuantumReset = Quantum;
256 NextEntry = NextEntry->
Flink;
284 OldAffinity =
Process->Affinity;
288 ListHead = &
Process->ThreadListHead;
289 NextEntry = ListHead->
Flink;
290 while (ListHead != NextEntry)
297 NextEntry = NextEntry->
Flink;
374 if (Quantum)
Process->QuantumReset = Quantum;
377 OldPriority =
Process->BasePriority;
384 ListHead = &
Process->ThreadListHead;
385 NextEntry = ListHead->
Flink;
391 while (NextEntry != ListHead)
397 if (Quantum)
Thread->QuantumReset = Quantum;
422 if (
Thread->Saturation > 0)
427 else if (
Thread->Saturation < 0)
438 Thread->PriorityDecrement = 0;
446 NextEntry = NextEntry->
Flink;
452 while (NextEntry != ListHead)
458 if (Quantum)
Thread->QuantumReset = Quantum;
480 if (!(
Thread->Saturation) ||
484 if (
Thread->Saturation > 0)
489 else if (
Thread->Saturation < 0)
500 Thread->PriorityDecrement = 0;
508 NextEntry = NextEntry->
Flink;
530 ULONG TotalKernel, TotalUser;
540 TotalKernel =
Process->KernelTime;
553 for (NextEntry =
Process->ThreadListHead.Flink;
554 NextEntry != &
Process->ThreadListHead;
555 NextEntry = NextEntry->
Flink)
563 TotalKernel +=
Thread->KernelTime;
564 TotalUser +=
Thread->UserTime;
635 if ((
Thread->ApcState.KernelApcInProgress) ||
773 if (
Thread->ApcState.KernelApcPending)
793 (
Thread->ApcState.KernelApcInProgress) ||
863 ULONG TotalUser, TotalKernel;
872 TotalKernel =
Process->KernelTime;
878 ListHead = &
Process->ThreadListHead;
879 NextEntry = ListHead->
Flink;
880 while (ListHead != NextEntry)
886 TotalKernel +=
Thread->KernelTime;
887 TotalUser +=
Thread->UserTime;
890 NextEntry = NextEntry->
Flink;
DECLSPEC_NORETURN VOID NTAPI KeBugCheck(ULONG BugCheckCode)
BOOLEAN NTAPI KeIsExecutingDpc(VOID)
#define RemoveEntryList(Entry)
#define IsListEmpty(ListHead)
#define KeGetCurrentIrql()
#define InitializeListHead(ListHead)
IN OUT PLONG IN OUT PLONG Addend IN OUT PLONG IN LONG Increment
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT _In_ PVOID Process
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
VOID FASTCALL HalRequestSoftwareInterrupt(IN KIRQL Irql)
#define KeGetCurrentThread
#define KPSF_DISABLE_BOOST_BIT
#define KPSF_AUTO_ALIGNMENT_BIT
#define LOW_REALTIME_PRIORITY
#define InterlockedBitTestAndSet
#define InterlockedBitTestAndReset
FORCEINLINE VOID KiAcquireApcLockRaiseToSynch(IN PKTHREAD Thread, IN PKLOCK_QUEUE_HANDLE Handle)
FORCEINLINE VOID KiReleaseDispatcherLock(IN KIRQL OldIrql)
FORCEINLINE VOID KiReleaseProcessLockFromSynchLevel(IN PKLOCK_QUEUE_HANDLE Handle)
FORCEINLINE VOID KiAcquireThreadLock(IN PKTHREAD Thread)
FORCEINLINE VOID KxUnwaitThread(IN DISPATCHER_HEADER *Object, IN KPRIORITY Increment)
FORCEINLINE VOID KiReleaseDispatcherLockFromSynchLevel(VOID)
FORCEINLINE VOID KiReleaseProcessLock(IN PKLOCK_QUEUE_HANDLE Handle)
FORCEINLINE VOID KiReleaseThreadLock(IN PKTHREAD Thread)
FORCEINLINE VOID KiAcquireDispatcherLockAtSynchLevel(VOID)
FORCEINLINE VOID KiReleaseApcLockFromSynchLevel(IN PKLOCK_QUEUE_HANDLE Handle)
FORCEINLINE KIRQL KiAcquireDispatcherLock(VOID)
FORCEINLINE VOID KiAcquireProcessLockRaiseToSynch(IN PKPROCESS Process, IN PKLOCK_QUEUE_HANDLE Handle)
FORCEINLINE VOID KiReleaseApcLock(IN PKLOCK_QUEUE_HANDLE Handle)
#define KiComputeIopmOffset(MapNumber)
#define IO_ACCESS_MAP_NONE
#define ASSERT_PROCESS(object)
struct _KPROCESS KPROCESS
struct _EPROCESS * PEPROCESS
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
UCHAR NTAPI KeFindNextRightSetAffinity(IN UCHAR Number, IN KAFFINITY Set)
VOID NTAPI KiReadyThread(IN PKTHREAD Thread)
KAFFINITY KeActiveProcessors
KAFFINITY FASTCALL KiSetAffinityThread(IN PKTHREAD Thread, IN KAFFINITY Affinity)
VOID FASTCALL KiSetPriorityThread(IN PKTHREAD Thread, IN KPRIORITY Priority)
VOID NTAPI KiMoveApcState(PKAPC_STATE OldState, PKAPC_STATE NewState)
VOID NTAPI KiSwapProcess(struct _KPROCESS *NewProcess, struct _KPROCESS *OldProcess)
VOID FASTCALL KiExitDispatcher(KIRQL OldIrql)
_Out_ PKAPC_STATE ApcState
_In_opt_ PENTER_STATE_SYSTEM_HANDLER _In_opt_ PVOID _In_ LONG _In_opt_ LONG volatile * Number
LIST_ENTRY KiProcessOutSwapListHead
KSERVICE_TABLE_DESCRIPTOR KeServiceDescriptorTable[SSDT_MAX_ENTRIES]
ULONG NTAPI KeSetProcess(IN PKPROCESS Process, IN KPRIORITY Increment, IN BOOLEAN InWait)
BOOLEAN NTAPI KeIsAttachedProcess(VOID)
ULONG NTAPI KeQueryRuntimeProcess(IN PKPROCESS Process, OUT PULONG UserTime)
PVOID KeRaiseUserExceptionDispatcher
KAFFINITY NTAPI KeSetAffinityProcess(IN PKPROCESS Process, IN KAFFINITY Affinity)
VOID NTAPI KeDetachProcess(VOID)
VOID NTAPI KeQueryValuesProcess(IN PKPROCESS Process, PPROCESS_VALUES Values)
BOOLEAN NTAPI KeSetDisableBoostProcess(IN PKPROCESS Process, IN BOOLEAN Disable)
VOID NTAPI KeStackAttachProcess(IN PKPROCESS Process, OUT PRKAPC_STATE ApcState)
PVOID KeUserExceptionDispatcher
VOID NTAPI KeSetQuantumProcess(IN PKPROCESS Process, IN UCHAR Quantum)
BOOLEAN NTAPI KeRemoveSystemServiceTable(IN ULONG Index)
LIST_ENTRY KiProcessInSwapListHead
BOOLEAN NTAPI KeAddSystemServiceTable(IN PULONG_PTR Base, IN PULONG Count OPTIONAL, IN ULONG Limit, IN PUCHAR Number, IN ULONG Index)
LIST_ENTRY KiStackInSwapListHead
PVOID KeUserCallbackDispatcher
VOID NTAPI KeInitializeProcess(IN OUT PKPROCESS Process, IN KPRIORITY Priority, IN KAFFINITY Affinity, IN PULONG_PTR DirectoryTableBase, IN BOOLEAN Enable)
VOID NTAPI KeUnstackDetachProcess(IN PRKAPC_STATE ApcState)
VOID NTAPI KeAttachProcess(IN PKPROCESS Process)
VOID NTAPI KiAttachProcess(IN PKTHREAD Thread, IN PKPROCESS Process, IN PKLOCK_QUEUE_HANDLE ApcLock, IN PRKAPC_STATE SavedApcState)
BOOLEAN NTAPI KeSetAutoAlignmentProcess(IN PKPROCESS Process, IN BOOLEAN Enable)
LIST_ENTRY KiProcessListHead
PVOID KeUserApcDispatcher
KPRIORITY NTAPI KeSetPriorityAndQuantumProcess(IN PKPROCESS Process, IN KPRIORITY Priority, IN UCHAR Quantum OPTIONAL)
KSERVICE_TABLE_DESCRIPTOR KeServiceDescriptorTableShadow[SSDT_MAX_ENTRIES]
VOID NTAPI KeBugCheckEx(_In_ ULONG BugCheckCode, _In_ ULONG_PTR BugCheckParameter1, _In_ ULONG_PTR BugCheckParameter2, _In_ ULONG_PTR BugCheckParameter3, _In_ ULONG_PTR BugCheckParameter4)
#define ASSERT_IRQL_LESS_OR_EQUAL(x)
PULONG MinorVersion OPTIONAL
LARGE_INTEGER WriteTransferCount
LARGE_INTEGER ReadTransferCount
LARGE_INTEGER ReadOperationCount
LARGE_INTEGER OtherTransferCount
LARGE_INTEGER WriteOperationCount
LARGE_INTEGER OtherOperationCount
ULONGLONG ReadOperationCount
ULONGLONG WriteTransferCount
ULONGLONG WriteOperationCount
ULONGLONG ReadTransferCount
ULONGLONG OtherOperationCount
ULONGLONG OtherTransferCount
struct _LIST_ENTRY * Flink
LARGE_INTEGER TotalUserTime
LARGE_INTEGER TotalKernelTime
#define CONTAINING_RECORD(address, type, field)
_In_ WDFCOLLECTION _In_ ULONG Index
_In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY _In_ WDF_INTERRUPT_PRIORITY Priority
struct _KPROCESS * PKPROCESS
_In_ ULONG _In_ ULONG _In_ ULONG _Out_ PKIRQL _Out_ PKAFFINITY Affinity
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
_In_ LONG _In_ LONG Limit
*RESTRICTED_POINTER PRKAPC_STATE