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;
LARGE_INTEGER WriteOperationCount
#define KeGetCurrentIrql()
FORCEINLINE VOID KiReleaseThreadLock(IN PKTHREAD Thread)
BOOLEAN NTAPI KeSetAutoAlignmentProcess(IN PKPROCESS Process, IN BOOLEAN Enable)
KAFFINITY FASTCALL KiSetAffinityThread(IN PKTHREAD Thread, IN KAFFINITY Affinity)
PVOID KeUserCallbackDispatcher
ULONGLONG OtherOperationCount
#define ASSERT_IRQL_LESS_OR_EQUAL(x)
LARGE_INTEGER ReadOperationCount
FORCEINLINE VOID KiAcquireProcessLockRaiseToSynch(IN PKPROCESS Process, IN PKLOCK_QUEUE_HANDLE Handle)
VOID NTAPI KiAttachProcess(IN PKTHREAD Thread, IN PKPROCESS Process, IN PKLOCK_QUEUE_HANDLE ApcLock, IN PRKAPC_STATE SavedApcState)
#define KPSF_DISABLE_BOOST_BIT
BOOLEAN NTAPI KeAddSystemServiceTable(IN PULONG_PTR Base, IN PULONG Count OPTIONAL, IN ULONG Limit, IN PUCHAR Number, IN ULONG Index)
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
ULONG NTAPI KeSetProcess(IN PKPROCESS Process, IN KPRIORITY Increment, IN BOOLEAN InWait)
struct _EPROCESS * PEPROCESS
ULONGLONG WriteOperationCount
#define LOW_REALTIME_PRIORITY
FORCEINLINE VOID KiReleaseApcLock(IN PKLOCK_QUEUE_HANDLE Handle)
BOOLEAN NTAPI KeIsExecutingDpc(VOID)
_Must_inspect_result_ FORCEINLINE BOOLEAN IsListEmpty(_In_ const LIST_ENTRY *ListHead)
FORCEINLINE BOOLEAN RemoveEntryList(_In_ PLIST_ENTRY Entry)
UCHAR NTAPI KeFindNextRightSetAffinity(IN UCHAR Number, IN ULONG Set)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
BOOLEAN NTAPI KeRemoveSystemServiceTable(IN ULONG Index)
VOID NTAPI KeStackAttachProcess(IN PKPROCESS Process, OUT PRKAPC_STATE ApcState)
LIST_ENTRY KiStackInSwapListHead
DECLSPEC_NORETURN VOID NTAPI KeBugCheck(ULONG BugCheckCode)
KAFFINITY NTAPI KeSetAffinityProcess(IN PKPROCESS Process, IN KAFFINITY Affinity)
VOID FASTCALL KiSetPriorityThread(IN PKTHREAD Thread, IN KPRIORITY Priority)
BOOLEAN NTAPI KeIsAttachedProcess(VOID)
ULONG NTAPI KeQueryRuntimeProcess(IN PKPROCESS Process, OUT PULONG UserTime)
#define InterlockedBitTestAndReset
KSERVICE_TABLE_DESCRIPTOR KeServiceDescriptorTableShadow[SSDT_MAX_ENTRIES]
LARGE_INTEGER OtherTransferCount
VOID NTAPI KeInitializeProcess(IN OUT PKPROCESS Process, IN KPRIORITY Priority, IN KAFFINITY Affinity, IN PULONG_PTR DirectoryTableBase, IN BOOLEAN Enable)
LIST_ENTRY KiProcessInSwapListHead
ULONGLONG WriteTransferCount
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
VOID FASTCALL KiExitDispatcher(KIRQL OldIrql)
VOID NTAPI KiReadyThread(IN PKTHREAD Thread)
#define InterlockedBitTestAndSet
VOID NTAPI KeQueryValuesProcess(IN PKPROCESS Process, PPROCESS_VALUES Values)
FORCEINLINE VOID KiAcquireThreadLock(IN PKTHREAD Thread)
#define IO_ACCESS_MAP_NONE
struct _LIST_ENTRY * Flink
struct _KPROCESS KPROCESS
PVOID KeUserExceptionDispatcher
#define KPSF_AUTO_ALIGNMENT_BIT
_In_ WDFCOLLECTION _In_ ULONG Index
KPRIORITY NTAPI KeSetPriorityAndQuantumProcess(IN PKPROCESS Process, IN KPRIORITY Priority, IN UCHAR Quantum OPTIONAL)
VOID NTAPI KeSetQuantumProcess(IN PKPROCESS Process, IN UCHAR Quantum)
_In_ ULONG _In_ ULONG _In_ ULONG _Out_ PKIRQL _Out_ PKAFFINITY Affinity
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
LARGE_INTEGER WriteTransferCount
FORCEINLINE VOID KiReleaseProcessLock(IN PKLOCK_QUEUE_HANDLE Handle)
VOID NTAPI KeDetachProcess(VOID)
_In_ WDFINTERRUPT _In_ WDF_INTERRUPT_POLICY _In_ WDF_INTERRUPT_PRIORITY Priority
ULONGLONG ReadTransferCount
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
FORCEINLINE VOID KiReleaseDispatcherLockFromSynchLevel(VOID)
FORCEINLINE VOID KiAcquireApcLockRaiseToSynch(IN PKTHREAD Thread, IN PKLOCK_QUEUE_HANDLE Handle)
_In_opt_ PENTER_STATE_SYSTEM_HANDLER _In_opt_ PVOID _In_ LONG _In_opt_ LONG volatile * Number
KAFFINITY KeActiveProcessors
FORCEINLINE VOID KiReleaseProcessLockFromSynchLevel(IN PKLOCK_QUEUE_HANDLE Handle)
VOID NTAPI KiSwapProcess(struct _KPROCESS *NewProcess, struct _KPROCESS *OldProcess)
VOID FASTCALL HalRequestSoftwareInterrupt(IN KIRQL Irql)
FORCEINLINE VOID KiReleaseApcLockFromSynchLevel(IN PKLOCK_QUEUE_HANDLE Handle)
FORCEINLINE VOID KiReleaseDispatcherLock(IN KIRQL OldIrql)
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
FORCEINLINE KIRQL KiAcquireDispatcherLock(VOID)
struct _KPROCESS * PKPROCESS
VOID NTAPI KeAttachProcess(IN PKPROCESS Process)
#define KiComputeIopmOffset(MapNumber)
VOID NTAPI KiMoveApcState(PKAPC_STATE OldState, PKAPC_STATE NewState)
VOID NTAPI KeUnstackDetachProcess(IN PRKAPC_STATE ApcState)
#define InitializeListHead(ListHead)
*RESTRICTED_POINTER PRKAPC_STATE
_Out_ PKAPC_STATE ApcState
LARGE_INTEGER TotalKernelTime
LIST_ENTRY KiProcessOutSwapListHead
LARGE_INTEGER OtherOperationCount
BOOLEAN NTAPI KeSetDisableBoostProcess(IN PKPROCESS Process, IN BOOLEAN Disable)
LARGE_INTEGER ReadTransferCount
PVOID KeRaiseUserExceptionDispatcher
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT _In_ PVOID Process
KSERVICE_TABLE_DESCRIPTOR KeServiceDescriptorTable[SSDT_MAX_ENTRIES]
LIST_ENTRY KiProcessListHead
LARGE_INTEGER TotalUserTime
PVOID KeUserApcDispatcher
ULONGLONG OtherTransferCount
FORCEINLINE VOID KxUnwaitThread(IN DISPATCHER_HEADER *Object, IN KPRIORITY Increment)
#define KeGetCurrentThread
IN OUT PLONG IN OUT PLONG Addend IN OUT PLONG IN LONG Increment
#define ASSERT_PROCESS(object)
_In_ LONG _In_ LONG Limit
VOID NTAPI KeBugCheckEx(_In_ ULONG BugCheckCode, _In_ ULONG_PTR BugCheckParameter1, _In_ ULONG_PTR BugCheckParameter2, _In_ ULONG_PTR BugCheckParameter3, _In_ ULONG_PTR BugCheckParameter4)
ULONGLONG ReadOperationCount
FORCEINLINE VOID KiAcquireDispatcherLockAtSynchLevel(VOID)
PULONG MinorVersion OPTIONAL