Using Events in Display Drivers
GDI provides support for events, a type of kernel dispatcher object that can be used to synchronize two threads running below DISPATCH_LEVEL. A display driver can use events to synchronize access to the video hardware:
By the display driver and the video miniport driver
By the display or video miniport driver and another component, such as an OpenGL driver or a program extension (such as the Display program in Control Panel).
The following table lists the GDI event-related functions.
Sets a given event object to the nonsignaled state.
Creates a synchronization event object.
Deletes the specified event object.
Maps a user-mode event object to kernel mode.
Returns the current state of a given event object: signaled or nonsignaled.
Sets an event object to the signaled state if it was not already in that state, and returns the event object's previous state.
Cleans up the kernel-mode resources allocated for a mapped user-mode event.
Puts the current thread into a wait state until the given dispatch object is set to the signaled state, or (optionally) until the wait times out.
The video port driver also provides support for events to video miniport drivers. See Events in Video Miniport Drivers (Windows 2000 Model) for more information.
For a broader perspective on events, see Event Objects.