23 Gate->Header.Signalling =
FALSE;
24 Gate->Header.Size =
sizeof(
KGATE) /
sizeof(
ULONG);
25 Gate->Header.SignalState = 0;
50 if ((
Thread->ApcState.KernelApcPending) &&
51 !(
Thread->SpecialApcDisable) &&
70 if (Gate->Header.SignalState)
73 Gate->Header.SignalState = 0;
88 GateWaitBlock = &
Thread->WaitBlock[0];
93 Thread->WaitMode = WaitMode;
94 Thread->WaitReason = WaitReason;
154 if (Gate->Header.SignalState)
break;
160 Gate->Header.SignalState = 1;
171 WaitThread = WaitBlock->
Thread;
203 if (WaitThread->
Queue)
209 if (WaitThread->
Queue)
#define RemoveEntryList(Entry)
#define InsertTailList(ListHead, Entry)
#define IsListEmpty(ListHead)
#define KeLowerIrql(oldIrql)
#define InitializeListHead(ListHead)
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
VOID FASTCALL KeSignalGateBoostPriority(IN PKGATE Gate)
VOID FASTCALL KeWaitForGate(IN PKGATE Gate, IN KWAIT_REASON WaitReason, IN KPROCESSOR_MODE WaitMode)
VOID FASTCALL KeInitializeGate(IN PKGATE Gate)
KIRQL NTAPI KeRaiseIrqlToSynchLevel(VOID)
#define KeGetCurrentThread
FORCEINLINE VOID KiAcquireApcLockRaiseToSynch(IN PKTHREAD Thread, IN PKLOCK_QUEUE_HANDLE Handle)
FORCEINLINE VOID KiSetThreadSwapBusy(IN PKTHREAD Thread)
FORCEINLINE VOID KiAcquireThreadLock(IN PKTHREAD Thread)
FORCEINLINE VOID KiReleaseDispatcherObject(IN DISPATCHER_HEADER *Object)
FORCEINLINE VOID KiAcquireDispatcherObject(IN DISPATCHER_HEADER *Object)
FORCEINLINE VOID KiReleaseDispatcherLockFromSynchLevel(VOID)
FORCEINLINE VOID KiReleaseThreadLock(IN PKTHREAD Thread)
FORCEINLINE VOID KiAcquireDispatcherLockAtSynchLevel(VOID)
FORCEINLINE VOID KiReleaseApcLockFromSynchLevel(IN PKLOCK_QUEUE_HANDLE Handle)
FORCEINLINE VOID KiReleaseApcLock(IN PKLOCK_QUEUE_HANDLE Handle)
FORCEINLINE BOOLEAN KiTryThreadLock(IN PKTHREAD Thread)
FORCEINLINE struct _KPRCB * KeGetCurrentPrcb(VOID)
VOID NTAPI KiReadyThread(IN PKTHREAD Thread)
LONG_PTR FASTCALL KiSwapThread(IN PKTHREAD Thread, IN PKPRCB Prcb)
VOID FASTCALL KiActivateWaiterQueue(IN PKQUEUE Queue)
VOID FASTCALL KiExitDispatcher(KIRQL OldIrql)
#define ASSERT_IRQL_LESS_OR_EQUAL(x)
volatile ULONG CurrentCount
volatile INT_PTR WaitStatus
#define CONTAINING_RECORD(address, type, field)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PIRP _In_ WDFQUEUE Queue
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
#define ASSERT_GATE(Object)
enum _KWAIT_REASON KWAIT_REASON