pcsc-lite  1.8.20
Data Structures | Macros
reader.h File Reference

This keeps a list of defines shared between the driver and the application. More...

#include <inttypes.h>

Go to the source code of this file.

Data Structures

struct  PCSC_TLV_STRUCTURE
 the structure must be 6-bytes long More...
 
struct  PIN_VERIFY_STRUCTURE
 structure used with FEATURE_VERIFY_PIN_DIRECT More...
 
struct  PIN_MODIFY_STRUCTURE
 structure used with FEATURE_MODIFY_PIN_DIRECT More...
 
struct  PIN_PROPERTIES_STRUCTURE
 structure used with FEATURE_IFD_PIN_PROPERTIES More...
 

Macros

#define SCARD_ATTR_VALUE(Class, Tag)   ((((ULONG)(Class)) << 16) | ((ULONG)(Tag)))
 
#define SCARD_CLASS_VENDOR_INFO   1
 Vendor information definitions.
 
#define SCARD_CLASS_COMMUNICATIONS   2
 Communication definitions.
 
#define SCARD_CLASS_PROTOCOL   3
 Protocol definitions.
 
#define SCARD_CLASS_POWER_MGMT   4
 Power Management definitions.
 
#define SCARD_CLASS_SECURITY   5
 Security Assurance definitions.
 
#define SCARD_CLASS_MECHANICAL   6
 Mechanical characteristic definitions.
 
#define SCARD_CLASS_VENDOR_DEFINED   7
 Vendor specific definitions.
 
#define SCARD_CLASS_IFD_PROTOCOL   8
 Interface Device Protocol options.
 
#define SCARD_CLASS_ICC_STATE   9
 ICC State specific definitions.
 
#define SCARD_CLASS_SYSTEM   0x7fff
 System-specific definitions.
 
#define SCARD_ATTR_VENDOR_NAME   SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO, 0x0100)
 Vendor name. More...
 
#define SCARD_ATTR_VENDOR_IFD_TYPE   SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO, 0x0101)
 Vendor-supplied interface device type (model designation of reader). More...
 
#define SCARD_ATTR_VENDOR_IFD_VERSION   SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO, 0x0102)
 Vendor-supplied interface device version (DWORD in the form 0xMMmmbbbb where MM = major version, mm = minor version, and bbbb = build number). More...
 
#define SCARD_ATTR_VENDOR_IFD_SERIAL_NO   SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO, 0x0103)
 Vendor-supplied interface device serial number. More...
 
#define SCARD_ATTR_CHANNEL_ID   SCARD_ATTR_VALUE(SCARD_CLASS_COMMUNICATIONS, 0x0110)
 DWORD encoded as 0xDDDDCCCC, where DDDD = data channel type and CCCC = channel number.
 
#define SCARD_ATTR_ASYNC_PROTOCOL_TYPES   SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0120)
 FIXME.
 
#define SCARD_ATTR_DEFAULT_CLK   SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0121)
 Default clock rate, in kHz. More...
 
#define SCARD_ATTR_MAX_CLK   SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0122)
 Maximum clock rate, in kHz. More...
 
#define SCARD_ATTR_DEFAULT_DATA_RATE   SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0123)
 Default data rate, in bps. More...
 
#define SCARD_ATTR_MAX_DATA_RATE   SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0124)
 Maximum data rate, in bps. More...
 
#define SCARD_ATTR_MAX_IFSD   SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0125)
 Maximum bytes for information file size device. More...
 
#define SCARD_ATTR_SYNC_PROTOCOL_TYPES   SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0126)
 FIXME.
 
#define SCARD_ATTR_POWER_MGMT_SUPPORT   SCARD_ATTR_VALUE(SCARD_CLASS_POWER_MGMT, 0x0131)
 Zero if device does not support power down while smart card is inserted. More...
 
#define SCARD_ATTR_USER_TO_CARD_AUTH_DEVICE   SCARD_ATTR_VALUE(SCARD_CLASS_SECURITY, 0x0140)
 FIXME.
 
#define SCARD_ATTR_USER_AUTH_INPUT_DEVICE   SCARD_ATTR_VALUE(SCARD_CLASS_SECURITY, 0x0142)
 FIXME.
 
#define SCARD_ATTR_CHARACTERISTICS   SCARD_ATTR_VALUE(SCARD_CLASS_MECHANICAL, 0x0150)
 DWORD indicating which mechanical characteristics are supported. More...
 
#define SCARD_ATTR_CURRENT_PROTOCOL_TYPE   SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0201)
 FIXME.
 
#define SCARD_ATTR_CURRENT_CLK   SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0202)
 Current clock rate, in kHz. More...
 
#define SCARD_ATTR_CURRENT_F   SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0203)
 Clock conversion factor. More...
 
#define SCARD_ATTR_CURRENT_D   SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0204)
 Bit rate conversion factor. More...
 
#define SCARD_ATTR_CURRENT_N   SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0205)
 Current guard time. More...
 
#define SCARD_ATTR_CURRENT_W   SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0206)
 Current work waiting time. More...
 
#define SCARD_ATTR_CURRENT_IFSC   SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0207)
 Current byte size for information field size card. More...
 
#define SCARD_ATTR_CURRENT_IFSD   SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0208)
 Current byte size for information field size device. More...
 
#define SCARD_ATTR_CURRENT_BWT   SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0209)
 Current block waiting time. More...
 
#define SCARD_ATTR_CURRENT_CWT   SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x020a)
 Current character waiting time. More...
 
#define SCARD_ATTR_CURRENT_EBC_ENCODING   SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x020b)
 Current error block control encoding. More...
 
#define SCARD_ATTR_EXTENDED_BWT   SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x020c)
 FIXME.
 
#define SCARD_ATTR_ICC_PRESENCE   SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE, 0x0300)
 Single byte indicating smart card presence.
 
#define SCARD_ATTR_ICC_INTERFACE_STATUS   SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE, 0x0301)
 Single byte. More...
 
#define SCARD_ATTR_CURRENT_IO_STATE   SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE, 0x0302)
 FIXME.
 
#define SCARD_ATTR_ATR_STRING   SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE, 0x0303)
 Answer to reset (ATR) string. More...
 
#define SCARD_ATTR_ICC_TYPE_PER_ATR   SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE, 0x0304)
 Single byte indicating smart card type.
 
#define SCARD_ATTR_ESC_RESET   SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_DEFINED, 0xA000)
 FIXME.
 
#define SCARD_ATTR_ESC_CANCEL   SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_DEFINED, 0xA003)
 FIXME.
 
#define SCARD_ATTR_ESC_AUTHREQUEST   SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_DEFINED, 0xA005)
 FIXME.
 
#define SCARD_ATTR_MAXINPUT   SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_DEFINED, 0xA007)
 FIXME.
 
#define SCARD_ATTR_DEVICE_UNIT   SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0001)
 Instance of this vendor's reader attached to the computer. More...
 
#define SCARD_ATTR_DEVICE_IN_USE   SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0002)
 Reserved for future use. More...
 
#define SCARD_ATTR_DEVICE_FRIENDLY_NAME_A   SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0003)
 
#define SCARD_ATTR_DEVICE_SYSTEM_NAME_A   SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0004)
 
#define SCARD_ATTR_DEVICE_FRIENDLY_NAME_W   SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0005)
 
#define SCARD_ATTR_DEVICE_SYSTEM_NAME_W   SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0006)
 
#define SCARD_ATTR_SUPRESS_T1_IFS_REQUEST   SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0007)
 FIXME.
 
#define SCARD_ATTR_DEVICE_FRIENDLY_NAME   SCARD_ATTR_DEVICE_FRIENDLY_NAME_A
 Reader's display name. More...
 
#define SCARD_ATTR_DEVICE_SYSTEM_NAME   SCARD_ATTR_DEVICE_SYSTEM_NAME_A
 Reader's system name. More...
 
#define SCARD_CTL_CODE(code)   (0x42000000 + (code))
 Provide source compatibility on different platforms.
 
#define CM_IOCTL_GET_FEATURE_REQUEST   SCARD_CTL_CODE(3400)
 PC/SC part 10 v2.02.07 March 2010 reader tags.
 
#define FEATURE_VERIFY_PIN_START   0x01
 
#define FEATURE_VERIFY_PIN_FINISH   0x02
 
#define FEATURE_MODIFY_PIN_START   0x03
 
#define FEATURE_MODIFY_PIN_FINISH   0x04
 
#define FEATURE_GET_KEY_PRESSED   0x05
 
#define FEATURE_VERIFY_PIN_DIRECT   0x06
 Verify PIN.
 
#define FEATURE_MODIFY_PIN_DIRECT   0x07
 Modify PIN.
 
#define FEATURE_MCT_READER_DIRECT   0x08
 
#define FEATURE_MCT_UNIVERSAL   0x09
 
#define FEATURE_IFD_PIN_PROPERTIES   0x0A
 retrieve properties of the IFD regarding PIN handling
 
#define FEATURE_ABORT   0x0B
 
#define FEATURE_SET_SPE_MESSAGE   0x0C
 
#define FEATURE_VERIFY_PIN_DIRECT_APP_ID   0x0D
 
#define FEATURE_MODIFY_PIN_DIRECT_APP_ID   0x0E
 
#define FEATURE_WRITE_DISPLAY   0x0F
 
#define FEATURE_GET_KEY   0x10
 
#define FEATURE_IFD_DISPLAY_PROPERTIES   0x11
 
#define FEATURE_GET_TLV_PROPERTIES   0x12
 
#define FEATURE_CCID_ESC_COMMAND   0x13
 
#define FEATURE_EXECUTE_PACE   0x20
 
#define HOST_TO_CCID_16(x)   (x)
 Since CCID 1.4.1 (revision 5252) the byte order is no more important These macros are now deprecated and should be removed in the future.
 
#define HOST_TO_CCID_32(x)   (x)
 
#define PCSCv2_PART10_PROPERTY_wLcdLayout   1
 
#define PCSCv2_PART10_PROPERTY_bEntryValidationCondition   2
 
#define PCSCv2_PART10_PROPERTY_bTimeOut2   3
 
#define PCSCv2_PART10_PROPERTY_wLcdMaxCharacters   4
 
#define PCSCv2_PART10_PROPERTY_wLcdMaxLines   5
 
#define PCSCv2_PART10_PROPERTY_bMinPINSize   6
 
#define PCSCv2_PART10_PROPERTY_bMaxPINSize   7
 
#define PCSCv2_PART10_PROPERTY_sFirmwareID   8
 
#define PCSCv2_PART10_PROPERTY_bPPDUSupport   9
 
#define PCSCv2_PART10_PROPERTY_dwMaxAPDUDataSize   10
 
#define PCSCv2_PART10_PROPERTY_wIdVendor   11
 
#define PCSCv2_PART10_PROPERTY_wIdProduct   12
 

Detailed Description

This keeps a list of defines shared between the driver and the application.

Definition in file reader.h.

Macro Definition Documentation

◆ SCARD_ATTR_ATR_STRING

#define SCARD_ATTR_ATR_STRING   SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE, 0x0303)

Answer to reset (ATR) string.

Definition at line 91 of file reader.h.

◆ SCARD_ATTR_CHARACTERISTICS

#define SCARD_ATTR_CHARACTERISTICS   SCARD_ATTR_VALUE(SCARD_CLASS_MECHANICAL, 0x0150)

DWORD indicating which mechanical characteristics are supported.

If zero, no special characteristics are supported. Note that multiple bits can be set

Definition at line 73 of file reader.h.

◆ SCARD_ATTR_CURRENT_BWT

#define SCARD_ATTR_CURRENT_BWT   SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0209)

Current block waiting time.

Definition at line 83 of file reader.h.

◆ SCARD_ATTR_CURRENT_CLK

#define SCARD_ATTR_CURRENT_CLK   SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0202)

Current clock rate, in kHz.

Definition at line 76 of file reader.h.

◆ SCARD_ATTR_CURRENT_CWT

#define SCARD_ATTR_CURRENT_CWT   SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x020a)

Current character waiting time.

Definition at line 84 of file reader.h.

◆ SCARD_ATTR_CURRENT_D

#define SCARD_ATTR_CURRENT_D   SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0204)

Bit rate conversion factor.

Definition at line 78 of file reader.h.

◆ SCARD_ATTR_CURRENT_EBC_ENCODING

#define SCARD_ATTR_CURRENT_EBC_ENCODING   SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x020b)

Current error block control encoding.

Definition at line 85 of file reader.h.

◆ SCARD_ATTR_CURRENT_F

#define SCARD_ATTR_CURRENT_F   SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0203)

Clock conversion factor.

Definition at line 77 of file reader.h.

◆ SCARD_ATTR_CURRENT_IFSC

#define SCARD_ATTR_CURRENT_IFSC   SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0207)

Current byte size for information field size card.

Definition at line 81 of file reader.h.

◆ SCARD_ATTR_CURRENT_IFSD

#define SCARD_ATTR_CURRENT_IFSD   SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0208)

Current byte size for information field size device.

Definition at line 82 of file reader.h.

◆ SCARD_ATTR_CURRENT_N

#define SCARD_ATTR_CURRENT_N   SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0205)

Current guard time.

Definition at line 79 of file reader.h.

◆ SCARD_ATTR_CURRENT_W

#define SCARD_ATTR_CURRENT_W   SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0206)

Current work waiting time.

Definition at line 80 of file reader.h.

◆ SCARD_ATTR_DEFAULT_CLK

#define SCARD_ATTR_DEFAULT_CLK   SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0121)

Default clock rate, in kHz.

Definition at line 64 of file reader.h.

◆ SCARD_ATTR_DEFAULT_DATA_RATE

#define SCARD_ATTR_DEFAULT_DATA_RATE   SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0123)

Default data rate, in bps.

Definition at line 66 of file reader.h.

◆ SCARD_ATTR_DEVICE_FRIENDLY_NAME

#define SCARD_ATTR_DEVICE_FRIENDLY_NAME   SCARD_ATTR_DEVICE_FRIENDLY_NAME_A

Reader's display name.

Definition at line 111 of file reader.h.

◆ SCARD_ATTR_DEVICE_IN_USE

#define SCARD_ATTR_DEVICE_IN_USE   SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0002)

Reserved for future use.

Definition at line 100 of file reader.h.

◆ SCARD_ATTR_DEVICE_SYSTEM_NAME

#define SCARD_ATTR_DEVICE_SYSTEM_NAME   SCARD_ATTR_DEVICE_SYSTEM_NAME_A

Reader's system name.

Definition at line 112 of file reader.h.

◆ SCARD_ATTR_DEVICE_UNIT

#define SCARD_ATTR_DEVICE_UNIT   SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0001)

Instance of this vendor's reader attached to the computer.

The first instance will be device unit 0, the next will be unit 1 (if it is the same brand of reader) and so on. Two different brands of readers will both have zero for this value.

Definition at line 99 of file reader.h.

◆ SCARD_ATTR_ICC_INTERFACE_STATUS

#define SCARD_ATTR_ICC_INTERFACE_STATUS   SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE, 0x0301)

Single byte.

Zero if smart card electrical contact is not active; nonzero if contact is active.

Definition at line 89 of file reader.h.

◆ SCARD_ATTR_MAX_CLK

#define SCARD_ATTR_MAX_CLK   SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0122)

Maximum clock rate, in kHz.

Definition at line 65 of file reader.h.

◆ SCARD_ATTR_MAX_DATA_RATE

#define SCARD_ATTR_MAX_DATA_RATE   SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0124)

Maximum data rate, in bps.

Definition at line 67 of file reader.h.

◆ SCARD_ATTR_MAX_IFSD

#define SCARD_ATTR_MAX_IFSD   SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0125)

Maximum bytes for information file size device.

Definition at line 68 of file reader.h.

◆ SCARD_ATTR_POWER_MGMT_SUPPORT

#define SCARD_ATTR_POWER_MGMT_SUPPORT   SCARD_ATTR_VALUE(SCARD_CLASS_POWER_MGMT, 0x0131)

Zero if device does not support power down while smart card is inserted.

Nonzero otherwise.

Definition at line 70 of file reader.h.

◆ SCARD_ATTR_VENDOR_IFD_SERIAL_NO

#define SCARD_ATTR_VENDOR_IFD_SERIAL_NO   SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO, 0x0103)

Vendor-supplied interface device serial number.

Definition at line 61 of file reader.h.

◆ SCARD_ATTR_VENDOR_IFD_TYPE

#define SCARD_ATTR_VENDOR_IFD_TYPE   SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO, 0x0101)

Vendor-supplied interface device type (model designation of reader).

Definition at line 59 of file reader.h.

◆ SCARD_ATTR_VENDOR_IFD_VERSION

#define SCARD_ATTR_VENDOR_IFD_VERSION   SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO, 0x0102)

Vendor-supplied interface device version (DWORD in the form 0xMMmmbbbb where MM = major version, mm = minor version, and bbbb = build number).

Definition at line 60 of file reader.h.

◆ SCARD_ATTR_VENDOR_NAME

#define SCARD_ATTR_VENDOR_NAME   SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO, 0x0100)

Vendor name.

Definition at line 58 of file reader.h.