Generated Events

This document describes how kernel events are used in communication with the kernel.

Drives can communicate with the Window Server, and through that to user programs, using events.

Kern::AddEvent() adds an event to the kernel event queue. This is used typically in drivers such as the keyboard driver, which raises key events.

TRawEvent event;
event.Set(TRawEvent::EKeyDown, EStdKeyBackspace);
Kern::AddEvent(event);

The kernel event queue maintains a circular buffer of TRawEvent objects allocated at system initialization. The Windows Server calls UserSvr::CaptureEventHook() to register itself to receive such events. The Kernel does not permit any process other than the Windows Server to register to receive events.