Writing ControllerControl Routines

Drivers that use a controller object must supply a ControllerControl routine to initiate I/O operations.

A lowest-level device driver that must synchronize operations through a physical controller, such as an "AT" disk controller, to similar devices can have a ControllerControl routine.

When a driver calls IoAllocateController, its ControllerControl routine is run immediately if the hardware represented by the controller object is available for an I/O operation. Otherwise, the ControllerControl routine is queued until the controller is free.


WDM drivers cannot use controller objects and ControllerControl routines.