Each kernel-mode driver is constructed around a set of system-defined, standard driver routines. Kernel-mode drivers process I\/O request packets<\/em>\u00a0(IRPs) within these standard routines by calling system-supplied driver support routines.<\/p>\n
All drivers, regardless of their level in a chain of attached drivers, must have a basic set of standard routines in order to process IRPs. Whether a driver must implement additional standard routines depends on whether the driver controls a physical device or is layered over a physical device driver, as well as on the nature of the underlying physical device. Lowest-level drivers that control physical devices have more required routines than higher-level drivers, which typically pass IRPs to a lower driver for processing.<\/p>\n
Standard driver routines can be divided into two groups: those that each kernel-mode driver must have, and those that are optional, depending on the driver type and location in the\u00a0device stack<\/em>.<\/p>\n
The following table lists required standard routines.<\/p>\n\n\n\n\n\n\n\n\n