17#define THREAD_BOOST_PRIORITY (LOW_REALTIME_PRIORITY - 1)
30 ULONG ScanIndex = *ScanLast;
62 NextEntry = ListHead->
Flink;
72 if (WaitLimit >=
Thread->WaitTime)
75 NextEntry = NextEntry->
Blink;
85 (
Thread->PriorityDecrement <=
90 (
Thread->PriorityDecrement <=
101 NextEntry = NextEntry->
Flink;
103 }
while((NextEntry != ListHead) && (
Number) && (
Count));
132 *ScanLast = ScanIndex;
143 PVOID WaitObjects[1];
154 DueTime.QuadPart = -1 * 10 * 1000 * 1000;
158 WaitObjects[0] = &PeriodTimer;
#define THREAD_BOOST_PRIORITY
VOID NTAPI KeBalanceSetManager(IN PVOID Context)
VOID NTAPI KiScanReadyQueues(IN PKDPC Dpc, IN PVOID DeferredContext, IN PVOID SystemArgument1, IN PVOID SystemArgument2)
VOID NTAPI KeInitializeDpc(IN PKDPC Dpc, IN PKDEFERRED_ROUTINE DeferredRoutine, IN PVOID DeferredContext)
#define RemoveEntryList(Entry)
#define IsListEmpty(ListHead)
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
_Must_inspect_result_ _In_ WAIT_TYPE _In_opt_ PLARGE_INTEGER _In_opt_ PKWAIT_BLOCK WaitBlockArray
#define KeGetCurrentThread
#define LOW_REALTIME_PRIORITY
FORCEINLINE VOID KiReleaseDispatcherLock(IN KIRQL OldIrql)
FORCEINLINE VOID KiReleasePrcbLock(IN PKPRCB Prcb)
FORCEINLINE VOID KiInsertDeferredReadyList(IN PKTHREAD Thread)
FORCEINLINE VOID KiAcquirePrcbLock(IN PKPRCB Prcb)
FORCEINLINE KIRQL KiAcquireDispatcherLock(VOID)
#define WAIT_QUANTUM_DECREMENT
NTKERNELAPI volatile KSYSTEM_TIME KeTickCount
#define PRIORITY_MASK(Priority)
PKPRCB KiProcessorBlock[]
NTSTATUS NTAPI KeWaitForMultipleObjects(IN ULONG Count, IN PVOID Object[], IN WAIT_TYPE WaitType, IN KWAIT_REASON WaitReason, IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL, OUT PKWAIT_BLOCK WaitBlockArray OPTIONAL)
_In_opt_ PENTER_STATE_SYSTEM_HANDLER _In_opt_ PVOID _In_ LONG _In_opt_ LONG volatile * Number
LIST_ENTRY DispatcherReadyListHead[32]
struct _LIST_ENTRY * Blink
struct _LIST_ENTRY * Flink
KPRIORITY NTAPI KeSetPriorityThread(IN PKTHREAD Thread, IN KPRIORITY Priority)
BOOLEAN NTAPI KeSetTimerEx(IN OUT PKTIMER Timer, IN LARGE_INTEGER DueTime, IN LONG Period, IN PKDPC Dpc OPTIONAL)
VOID NTAPI KeInitializeTimerEx(OUT PKTIMER Timer, IN TIMER_TYPE Type)
#define CONTAINING_RECORD(address, type, field)
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ PWDF_DPC_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFDPC * Dpc
_In_ WDFTIMER _In_ LONGLONG DueTime
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
_In_opt_ PVOID _In_opt_ PVOID SystemArgument1
_In_opt_ PVOID DeferredContext
_In_opt_ PVOID _In_opt_ PVOID _In_opt_ PVOID SystemArgument2