Management of IOCTL requests is centered in the smart card driver library. For the most part, smart card reader drivers can simply pass IOCTL requests to the SmartcardDeviceControl (WDM) library routine.
However, the standard set of IOCTL requests serviced by the smart card driver library are not always sufficient to fully support the capabilities of a reader device. Therefore, vendors might need to create their own IOCTL requests. Furthermore, some of the standard IOCTL requests might require additional processing after being handled by the driver library. For both of these reasons, with the driver architecture for smart card readers vendor-supplied reader drivers can implement a series of callback routines. These callback routines provide further processing of IOCTLs when needed.
The following sections explain how reader drivers manage IOCTL requests, how the callback routine mechanism works, and what a reader driver must do to initialize its callback routines.
In particular, the following topics are covered: