#pragma once // ke_event.h - auto-reset and manual-reset events #include "ob_object.h" #include "ke_spinlock.h" #include "ke_list.h" #include "ke_status.h" #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);