#pragma once // ke_event.h - auto-reset and manual-reset events #include #include #include #include #include typedef enum EVENT_TYPE { EventAutoReset, EventManualReset } EVENT_TYPE; typedef struct EVENT { OBJECT Header; SPINLOCK Lock; EVENT_TYPE Type; uint32_t Signaled; LIST_ENTRY WaitList; } EVENT; KSTATUS KeEventCreate(EVENT_TYPE type, uint32_t initialState, EVENT **out); void KeSignalEvent(EVENT* event); void KeClearEvent(EVENT* event); KSTATUS KeWaitForEvent(EVENT* event);