Smartcard device drivers

Overview of the Smartcard device drivers technology.

To develop Smartcard device drivers, you need these headers:

For the programming guide, see Smartcard device drivers.

IOCTLs

 
IOCTL_SMARTCARD_EJECT

The IOCTL_SMARTCARD_EJECT request ejects the currently inserted smart card from the smart card reader.
IOCTL_SMARTCARD_GET_LAST_ERROR

The IOCTL_SMARTCARD_GET_LAST_ERROR request retrieves the error code of the most previous operation because there is no option to return an error code immediately after an overlapped operation is complete.
IOCTL_SMARTCARD_SWALLOW

The IOCTL_SMARTCARD_SWALLOW request causes the smart card reader to swallow the card.

Structures

 
SMARTCARD_EXTENSION

The SMARTCARD_EXTENSION structure is used by both the smart card reader driver and the smart card driver library to access all other smart card data structures.
CLOCK_RATE_CONVERSION

The CLOCK_RATE_CONVERSION structure holds a value that determines the duration of a bit of data and the corresponding maximum operating frequency that accompanies the indicated bit length.
OS_DEP_DATA

The OS_DEP_DATA structure defines the data that is stored in the OsData member of the SMARTCARD_EXTENSION structure, which holds smart card information that is specific to the operating system.
PTS_DATA

The PTS_DATA structure is used for protocol type selection (PTS).
SCARD_CARD_CAPABILITIES

The SCARD_CARD_CAPABILITIES structure declaration defines the data that is stored in the CardCapabilites member of the SMARTCARD_EXTENSION structure and holds all information that is specific to the particular smart card that is currently used.
SCARD_READER_CAPABILITIES

The SCARD_READER_CAPABILITIES structure holds state information about the smart card reader.
SMARTCARD_REPLY

Describes the reply buffer received from the smart card.
SMARTCARD_REQUEST

Describes the request buffer that contains data to send to the card.
T0_DATA

The T0_DATA structure is used by the smart card driver library to process T0 I/O.
T1_DATA

The T1_DATA structure is used by the smart card driver library to process T1 I/O.
VENDOR_ATTR

The VENDOR_ATTR structure defines the data that is stored in the VendorAttr member of the SMARTCARD_EXTENSION structure. VENDOR_ATTR also holds information that identifies the smart card reader, such as the vendor name, unit number, and serial number.