If you renew for a ‘standard’ Massachusetts driver’s license or ID card online between June 12 and the date when the State of Emergency ends, you will be able to upgrade to a REAL ID if you need it in 2021 at no additional charge. To obtain a Standard license/ID card, follow the steps below. See the device-type-specific documentation in the Windows Driver Kit (WDK) for information about the requirements for miniport drivers. Whether a driver has any other kind of standard routine depends on its functionality and on how that driver fits into the system (for example, whether it interoperates with system-supplied drivers).
Each kernel-mode driver is constructed around a set of system-defined, standard driver routines. Kernel-mode drivers process I/O request packets (IRPs) within these standard routines by calling system-supplied driver support routines.
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.
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 device stack.
This section describes required standard routines. Other sections describe the optional routines.
Following are two tables. The first table lists required standard routines. The second lists most of the optional routines.
Required standard driver routines | Purpose | Where described |
---|---|---|
Initializes the driver and its driver object. | ||
Initializes devices and creates device objects. | ||
Receive and process IRPs. | ||
Unload | Release system resources acquired by the driver. |
Optional standard driver routines | Purpose | Where described |
---|---|---|
Reinitialize | Completes driver initialization if DriverEntry cannot. | |
StartIo | Starts an I/O operation on a physical device. | |
Interrupt Service Routine | Saves the state of a device when it interrupts. | |
Deferred Procedure Calls | Completes the processing of a device interrupt after an ISR saves the device state. | |
SynchCritSection | Synchronizes access to driver data. | |
AdapterControl | Initiates DMA operations. | |
IoCompletion | Completes a driver's processing of an IRP. | |
Cancel | Cancels a driver's processing of an IRP. | |
CustomTimerDpc, IoTimer | Timing and synchronizing events. |
Online Drivers Test
The current IRP and target device object are input parameters to many standard routines. Every driver processes each IRP in stages through its set of standard routines.
Standard Driver Loft
By convention, the system-supplied drivers prepend an identifying, driver-specific or device-specific prefix to the name of every standard routine except DriverEntry. As an example, this documentation uses 'DD', as shown in the illustration in Introduction to Driver Objects. Following this convention makes it easier to debug and maintain drivers.