Share via


Smart Card Driver Architecture

Other versions of this page are also available for the following:

Windows Mobile Not SupportedWindows Embedded CE Supported

8/28/2008

Smart card support consists of the following resources that aid you in creating applications for smart cards and drivers for smart card readers.

  • The Smart Card Resource Manager, which contains APIs that enable developers to write software that uses smart cards.
  • The Smart Card Driver Library, which contains APIs that support the creation of device drivers for smart card readers.
  • A set of I/O control codes, which the Smart Card Resource Manager uses to interact with smart card device drivers. Smart card reader drivers should only be opened by the Smart Card Resource Manager.

The Smart Card Resource Manager calls the driver. The driver calls the Smart Card Driver Library. The library checks the parameters of the call. If help from the driver is not needed to satisfy the call, the library returns the requested data, or an error code, to the caller. If help from the driver is needed to satisfy the call, for example for I/O and for vendor-specific calls, the library calls the driver with all parameters set up correctly. The driver performs I/O and uses support functions of the library to complete the request. The driver returns to the resource manager.

The Smart Card Driver Library synchronizes access to the driver. No two callback functions will be called at the same time, as all API calls are blocking. Smart card applications operate in a multi-threaded environment. Multiple applications can call into the Smart Card Resource Manager, but only one call will go to the smart card reader driver at a time. The smart card application is responsible for determining the driver associated with each device by using an IOCTL query and for determining the order in which to call each device. The smart card driver model relies upon the application to call SCardBeginTransaction and SCardEndTransaction. For additional information, see Smart Card Application Development.

See Also

Concepts

Smart Card Driver Debugging
Smart Card Driver Registry Settings
Smart Card Driver Development Concepts