#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; __declspec(dllexport) KSTATUS KeEventCreate(EVENT_TYPE type, uint32_t initialState, EVENT **out); __declspec(dllexport) void KeSignalEvent(EVENT* event); __declspec(dllexport) void KeClearEvent(EVENT* event); __declspec(dllexport) KSTATUS KeWaitForEvent(EVENT* event);