Writing Dispatch Routines
Processing any I/O request packet (IRP) begins in a dispatch routine that the driver registers to handle an IRP major function code (IRP_MJ_*XXX). The driver's DriverEntry routine exports entry points for dispatch routines in a dispatch table within the driver's DRIVER_OBJECT* structure.
A driver can provide a separate dispatch routine for each major I/O function code that it handles. Alternatively, dispatch routines can be written to handle multiple I/O function codes.
This section contains the following topics:
Dispatch Routine Functionality
When to Check the Driver's I/O Stack Location
DispatchCreate, DispatchClose, and DispatchCreateClose Routines
DispatchRead, DispatchWrite, and DispatchReadWrite Routines
DispatchDeviceControl and DispatchInternalDeviceControl Routines
DispatchQueryInformation Routines