33 Queue->CurrentCount--;
45 if ((WaitEntry != &
Queue->Header.WaitListHead) &&
46 (QueueEntry != &
Queue->EntryListHead))
53 Queue->Header.SignalState--;
92 if ((
Queue->CurrentCount <
Queue->MaximumCount) &&
93 (WaitEntry != &
Queue->Header.WaitListHead) &&
109 Queue->CurrentCount++;
122 Queue->Header.SignalState++;
153 Queue->Header.Abandoned = 0;
155 Queue->Header.SignalState = 0;
163 Queue->CurrentCount = 0;
230 return Queue->Header.SignalState;
275 PreviousQueue =
Thread->Queue;
279 if (
Queue != PreviousQueue)
282 QueueEntry = &
Thread->QueueListEntry;
298 Queue->CurrentCount--;
306 if ((
Queue->CurrentCount <
Queue->MaximumCount) &&
307 (QueueEntry != &
Queue->EntryListHead))
310 Queue->Header.SignalState--;
313 Queue->CurrentCount++;
316 if (!(QueueEntry->
Flink) || !(QueueEntry->
Blink))
337 if ((
Thread->ApcState.KernelApcPending) &&
341 Queue->CurrentCount++;
349 (
Thread->ApcState.UserApcPending))
353 Queue->CurrentCount++;
362 if ((
ULONG64)InterruptTime.QuadPart >=
Timer->DueTime.QuadPart)
366 Queue->CurrentCount++;
423 Queue->CurrentCount--;
452 if (FirstEntry == &
Queue->EntryListHead)
#define RemoveEntryList(Entry)
#define InsertTailList(ListHead, Entry)
#define InsertHeadList(ListHead, Entry)
#define IsListEmpty(ListHead)
#define InitializeListHead(ListHead)
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
_Must_inspect_result_ _In_ PFLT_CALLBACK_DATA _In_ PFLT_DEFERRED_IO_WORKITEM_ROUTINE WorkerRoutine
KIRQL NTAPI KeRaiseIrqlToSynchLevel(VOID)
#define KeGetCurrentThread
FORCEINLINE VOID KiReleaseDispatcherLock(IN KIRQL OldIrql)
FORCEINLINE VOID KiSetThreadSwapBusy(IN PKTHREAD Thread)
FORCEINLINE VOID KxRemoveTreeTimer(IN PKTIMER Timer)
FORCEINLINE PLARGE_INTEGER KiRecalculateDueTime(IN PLARGE_INTEGER OriginalDueTime, IN PLARGE_INTEGER DueTime, IN OUT PLARGE_INTEGER NewDueTime)
#define KiAddThreadToWaitList(Thread, Swappable)
#define KxQueueThreadWait()
FORCEINLINE VOID KiReleaseDispatcherLockFromSynchLevel(VOID)
FORCEINLINE VOID KiAcquireDispatcherLockAtSynchLevel(VOID)
FORCEINLINE KIRQL KiAcquireDispatcherLock(VOID)
FORCEINLINE VOID KxInsertTimer(IN PKTIMER Timer, IN ULONG Hand)
FORCEINLINE struct _KPRCB * KeGetCurrentPrcb(VOID)
_In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_ EVENT_TYPE _In_ BOOLEAN InitialState
VOID NTAPI KiReadyThread(IN PKTHREAD Thread)
LONG_PTR FASTCALL KiSwapThread(IN PKTHREAD Thread, IN PKPRCB Prcb)
VOID FASTCALL KiUnwaitThread(IN PKTHREAD Thread, IN LONG_PTR WaitStatus, IN KPRIORITY Increment)
VOID FASTCALL KiExitDispatcher(KIRQL OldIrql)
LONG NTAPI KeReadStateQueue(IN PKQUEUE Queue)
LONG NTAPI KeInsertHeadQueue(IN PKQUEUE Queue, IN PLIST_ENTRY Entry)
LONG NTAPI KeInsertQueue(IN PKQUEUE Queue, IN PLIST_ENTRY Entry)
LONG NTAPI KiInsertQueue(IN PKQUEUE Queue, IN PLIST_ENTRY Entry, IN BOOLEAN Head)
PLIST_ENTRY NTAPI KeRundownQueue(IN PKQUEUE Queue)
VOID NTAPI KeInitializeQueue(IN PKQUEUE Queue, IN ULONG Count OPTIONAL)
VOID FASTCALL KiActivateWaiterQueue(IN PKQUEUE Queue)
PLIST_ENTRY NTAPI KeRemoveQueue(IN PKQUEUE Queue, IN KPROCESSOR_MODE WaitMode, IN PLARGE_INTEGER Timeout OPTIONAL)
#define STATUS_KERNEL_APC
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)
#define KeQueryInterruptTime()
PULONG MinorVersion OPTIONAL
base of all file and directory entries
struct _LIST_ENTRY * Blink
struct _LIST_ENTRY * Flink
struct _LIST_ENTRY * PLIST_ENTRY
#define CONTAINING_RECORD(address, type, field)
_In_ WDF_POWER_DEVICE_STATE PreviousState
_Must_inspect_result_ _In_ WDFDEVICE _In_ PIRP _In_ WDFQUEUE Queue
_In_ WDFTIMER _In_ LONGLONG DueTime
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql