Other Standard Driver Routines
As the driver object illustration shows, kernel-mode drivers have other standard routines along with those for which they set entry points in their respective driver objects. Most standard driver routines and some of the configuration-dependent objects they use are defined by the I/O manager. The ISR, SynchCritSection routine, and those shown in the Driver Object figure with names containing the word "custom" are defined by the NT kernel.
Most drivers use the device extension of each device object they create to maintain device-specific state about their I/O operations and to store pointers to any system resources that they must allocate in order to have other standard routines. For example, the DDCustomTimerDpc routine shown in the Driver Object figure requires the driver to supply storage for kernel-defined timer and DPC objects.
The set of standard driver routines for lowest-level drivers shown on the left in the driver object illustration is necessarily different from the set for higher-level drivers. Some of the routines shown in this figure are device-dependent or configuration-dependent requirements. Others are optional: you may choose to implement such a routine depending on the nature or configuration of the driver's devices, on the driver's design, and on the driver's position in a chain of layered drivers.