Using Dispatcher Objects

Except for Thread objects themselves, the driver must allocate storage for any dispatcher objects that are used. The objects must be permanently resident and are, therefore, usually allocated within the Device or Controller Extension. In any case, they must be in nonpaged memory.

Also, the dispatch object must be initialized once with the proper KeInitializeXxx function before it is used. Since the initialization functions can only be called at PASSIVE_LEVEL IRQL, dispatcher objects are usually prepared in the DriverEntry or AddDevice routine.

The following sections describe each category of dispatcher objects in greater detail.

Event Objects

An event is a dispatcher object that must be explicitly set to the signaled ...

Get Windows® 2000 Device Driver Book: A Guide for Programmers, Second Edition, The now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.