29 Semaphore->Header.SignalState =
Count;
33 Semaphore->Limit =
Limit;
46 return Semaphore->Header.SignalState;
81 Semaphore->Header.SignalState =
State;
#define IsListEmpty(ListHead)
#define InitializeListHead(ListHead)
IN OUT PLONG IN OUT PLONG Addend IN OUT PLONG IN LONG Increment
#define KeGetCurrentThread
FORCEINLINE VOID KiReleaseDispatcherLock(IN KIRQL OldIrql)
FORCEINLINE KIRQL KiAcquireDispatcherLock(VOID)
_In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_ EVENT_TYPE _In_ BOOLEAN InitialState
VOID FASTCALL KiWaitTest(PVOID Object, KPRIORITY Increment)
#define STATUS_SEMAPHORE_LIMIT_EXCEEDED
#define ASSERT_IRQL_LESS_OR_EQUAL(x)
LONG NTAPI KeReadStateSemaphore(IN PKSEMAPHORE Semaphore)
VOID NTAPI KeInitializeSemaphore(IN PKSEMAPHORE Semaphore, IN LONG Count, IN LONG Limit)
LONG NTAPI KeReleaseSemaphore(IN PKSEMAPHORE Semaphore, IN KPRIORITY Increment, IN LONG Adjustment, IN BOOLEAN Wait)
_In_ WDFDPC _In_ BOOLEAN Wait
_In_ KPRIORITY _In_ LONG Adjustment
_Requires_lock_held_ Interrupt _Releases_lock_ Interrupt _In_ _IRQL_restores_ KIRQL OldIrql
_In_ LONG _In_ LONG Limit
struct _KSEMAPHORE KSEMAPHORE
#define ASSERT_SEMAPHORE(Object)