VOID 
    KeInitializeEvent(
        IN PKEVENT  Event,
        IN EVENT_TYPE  Type,
        IN BOOLEAN  State
        );
KeInitializeEvent initializes an event object as a synchronization (single waiter) or notification type event and sets its initial state to Signaled or Not-Signaled.
A caller cannot wait at raised IRQL for a nonzero interval on an event object or in a nonarbitrary thread context.
Storage for an event object must be resident: in the device extension of a driver-created device object, in the controller extension of a driver-created controller object, or in nonpaged pool allocated by the caller.
Callers of this routine must be running at IRQL PASSIVE_LEVEL.
KeClearEvent, KeReadStateEvent, KeResetEvent, KeSetEvent, KeWaitForMultipleObjects, KeWaitForSingleObject