251#ifndef _ifd_handler_h_
252#define _ifd_handler_h_
321#define TAG_IFD_ATR 0x0303
322#define TAG_IFD_SLOTNUM 0x0180
323#define TAG_IFD_SLOT_THREAD_SAFE 0x0FAC
324#define TAG_IFD_THREAD_SAFE 0x0FAD
325#define TAG_IFD_SLOTS_NUMBER 0x0FAE
326#define TAG_IFD_SIMULTANEOUS_ACCESS 0x0FAF
327#define TAG_IFD_POLLING_THREAD 0x0FB0
328#define TAG_IFD_POLLING_THREAD_KILLABLE 0x0FB1
329#define TAG_IFD_STOP_POLLING_THREAD 0x0FB2
330#define TAG_IFD_POLLING_THREAD_WITH_TIMEOUT 0x0FB3
331#define TAG_IFD_DEVICE_REMOVED 0x0FB4
336#define IFD_HVERSION_1_0 0x00010000
337#define IFD_HVERSION_2_0 0x00020000
338#define IFD_HVERSION_3_0 0x00030000
343#define IFD_POWER_UP 500
344#define IFD_POWER_DOWN 501
347#define IFD_NEGOTIATE_PTS1 1
348#define IFD_NEGOTIATE_PTS2 2
349#define IFD_NEGOTIATE_PTS3 4
352#define IFD_ERROR_TAG 600
353#define IFD_ERROR_SET_FAILURE 601
354#define IFD_ERROR_VALUE_READ_ONLY 602
355#define IFD_ERROR_PTS_FAILURE 605
356#define IFD_ERROR_NOT_SUPPORTED 606
357#define IFD_PROTOCOL_NOT_SUPPORTED 607
358#define IFD_ERROR_POWER_ACTION 608
359#define IFD_ERROR_SWALLOW 609
360#define IFD_ERROR_EJECT 610
361#define IFD_ERROR_CONFISCATE 611
362#define IFD_COMMUNICATION_ERROR 612
363#define IFD_RESPONSE_TIMEOUT 613
364#define IFD_NOT_SUPPORTED 614
365#define IFD_ICC_PRESENT 615
366#define IFD_ICC_NOT_PRESENT 616
372#define IFD_NO_SUCH_DEVICE 617
373#define IFD_ERROR_INSUFFICIENT_BUFFER 618
375#ifndef RESPONSECODE_DEFINED_IN_WINTYPES_H
376 typedef long RESPONSECODE;
520 TxBuffer, DWORD TxLength, PUCHAR RxBuffer, DWORD RxLength,
521 LPDWORD pdwBytesReturned);
531RESPONSECODE
IFDHControl(DWORD Lun, PUCHAR TxBuffer, DWORD TxLength,
532 PUCHAR RxBuffer, PDWORD RxLength);
718 UCHAR PTS1, UCHAR PTS2, UCHAR PTS3);
806 PUCHAR TxBuffer, DWORD TxLength, PUCHAR RxBuffer, PDWORD
RESPONSECODE IFDHCloseChannel(DWORD Lun)
This function should close the reader communication channel for the particular reader.
RESPONSECODE IFDHGetCapabilities(DWORD Lun, DWORD Tag, PDWORD Length, PUCHAR Value)
This function should get the slot/card capabilities for a particular slot/card specified by Lun.
RESPONSECODE IFDHSetProtocolParameters(DWORD Lun, DWORD Protocol, UCHAR Flags, UCHAR PTS1, UCHAR PTS2, UCHAR PTS3)
This function should set the Protocol Type Selection (PTS) of a particular card/slot using the three ...
RESPONSECODE IFDHSetCapabilities(DWORD Lun, DWORD Tag, DWORD Length, PUCHAR Value)
This function should set the slot/card capabilities for a particular slot/card specified by Lun.
RESPONSECODE IFDHCreateChannelByName(DWORD Lun, LPSTR DeviceName)
This function is required to open a communications channel to the port listed by DeviceName.
RESPONSECODE IFDHControl(DWORD Lun, DWORD dwControlCode, PUCHAR TxBuffer, DWORD TxLength, PUCHAR RxBuffer, DWORD RxLength, LPDWORD pdwBytesReturned)
This function performs a data exchange with the reader (not the card) specified by Lun.
RESPONSECODE IFDHICCPresence(DWORD Lun)
This function returns the status of the card inserted in the reader/slot specified by Lun.
RESPONSECODE IFDHTransmitToICC(DWORD Lun, SCARD_IO_HEADER SendPci, PUCHAR TxBuffer, DWORD TxLength, PUCHAR RxBuffer, PDWORD RxLength, PSCARD_IO_HEADER RecvPci)
This function performs an APDU exchange with the card/slot specified by Lun.
RESPONSECODE IFDHCreateChannel(DWORD Lun, DWORD Channel)
This function is required to open a communications channel to the port listed by Channel.
RESPONSECODE IFDHPowerICC(DWORD Lun, DWORD Action, PUCHAR Atr, PDWORD AtrLength)
This function controls the power and reset signals of the smart card reader at the particular reader/...
struct _SCARD_IO_HEADER SCARD_IO_HEADER
Use by SCardTransmit()
This keeps a list of defines for pcsc-lite.
#define MAX_ATR_SIZE
Maximum ATR size.
DWORD User_Auth_Device
Tag 0x0142.
LPSTR Vendor_Name
Tag 0x0100.
DWORD IFD_Version
Tag 0x0102.
DWORD Default_Data_Rate
Tag 0x0123.
DWORD Power_Mgmt
Tag 0x0131.
DWORD Max_Data_Rate
Tag 0x0124.
DWORD Synch_Supported
Tag 0x0126.
DWORD Card_Auth_Devices
Tag 0x0140.
DWORD IFD_Channel_ID
Tag 0x0110.
DWORD Default_Clock
Tag 0x0121.
DWORD Vendor_Features
Tag 0x0180 - 0x01F0 User Defined.
DWORD Mechanics_Supported
Tag 0x0150.
LPSTR IFD_Type
Tag 0x0101.
DWORD Max_IFSD
Tag 0x0125.
DWORD Asynch_Supported
Tag 0x0120.
LPSTR IFD_Serial
Tag 0x0103.
DWORD Max_Clock
Tag 0x0122.
UCHAR ICC_Interface_Status
Tag 0x0301.
UCHAR ICC_Presence
Tag 0x0300.
UCHAR ATR[MAX_ATR_SIZE]
Tag 0x0303.
UCHAR ICC_Type
Tag 0x0304.
DWORD Current_Clock
Tag 0x0202.
DWORD Current_F
Tag 0x0203.
DWORD Current_D
Tag 0x0204.
DWORD Current_BWT
Tag 0x0209.
DWORD Current_EBC
Tag 0x020B.
DWORD Current_CWT
Tag 0x020A.
DWORD Current_IFSC
Tag 0x0207.
DWORD Current_N
Tag 0x0205.
DWORD Current_W
Tag 0x0206.
DWORD Protocol_Type
Tag 0x0201.
DWORD Current_IFSD
Tag 0x0208.