229 #ifndef _ifd_handler_h_
230 #define _ifd_handler_h_
299 #define TAG_IFD_ATR 0x0303
300 #define TAG_IFD_SLOTNUM 0x0180
301 #define TAG_IFD_SLOT_THREAD_SAFE 0x0FAC
302 #define TAG_IFD_THREAD_SAFE 0x0FAD
303 #define TAG_IFD_SLOTS_NUMBER 0x0FAE
304 #define TAG_IFD_SIMULTANEOUS_ACCESS 0x0FAF
305 #define TAG_IFD_POLLING_THREAD 0x0FB0
306 #define TAG_IFD_POLLING_THREAD_KILLABLE 0x0FB1
307 #define TAG_IFD_STOP_POLLING_THREAD 0x0FB2
308 #define TAG_IFD_POLLING_THREAD_WITH_TIMEOUT 0x0FB3
313 #define IFD_HVERSION_1_0 0x00010000
314 #define IFD_HVERSION_2_0 0x00020000
315 #define IFD_HVERSION_3_0 0x00030000
320 #define IFD_POWER_UP 500
321 #define IFD_POWER_DOWN 501
322 #define IFD_RESET 502
324 #define IFD_NEGOTIATE_PTS1 1
325 #define IFD_NEGOTIATE_PTS2 2
326 #define IFD_NEGOTIATE_PTS3 4
328 #define IFD_SUCCESS 0
329 #define IFD_ERROR_TAG 600
330 #define IFD_ERROR_SET_FAILURE 601
331 #define IFD_ERROR_VALUE_READ_ONLY 602
332 #define IFD_ERROR_PTS_FAILURE 605
333 #define IFD_ERROR_NOT_SUPPORTED 606
334 #define IFD_PROTOCOL_NOT_SUPPORTED 607
335 #define IFD_ERROR_POWER_ACTION 608
336 #define IFD_ERROR_SWALLOW 609
337 #define IFD_ERROR_EJECT 610
338 #define IFD_ERROR_CONFISCATE 611
339 #define IFD_COMMUNICATION_ERROR 612
340 #define IFD_RESPONSE_TIMEOUT 613
341 #define IFD_NOT_SUPPORTED 614
342 #define IFD_ICC_PRESENT 615
343 #define IFD_ICC_NOT_PRESENT 616
349 #define IFD_NO_SUCH_DEVICE 617
350 #define IFD_ERROR_INSUFFICIENT_BUFFER 618
352 #ifndef RESPONSECODE_DEFINED_IN_WINTYPES_H
353 typedef long RESPONSECODE;
496 RESPONSECODE
IFDHControl(DWORD Lun, DWORD dwControlCode, PUCHAR
497 TxBuffer, DWORD TxLength, PUCHAR RxBuffer, DWORD RxLength,
498 LPDWORD pdwBytesReturned);
508 RESPONSECODE
IFDHControl(DWORD Lun, PUCHAR TxBuffer, DWORD TxLength,
509 PUCHAR RxBuffer, PDWORD RxLength);
688 UCHAR PTS1, UCHAR PTS2, UCHAR PTS3);
721 RESPONSECODE
IFDHPowerICC(DWORD Lun, DWORD Action, PUCHAR Atr, PDWORD
776 PUCHAR TxBuffer, DWORD TxLength, PUCHAR RxBuffer, PDWORD
777 RxLength, PSCARD_IO_HEADER RecvPci);
DWORD Card_Auth_Devices
Tag 0x0140.
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.
DWORD Default_Data_Rate
Tag 0x0123.
DWORD Max_Data_Rate
Tag 0x0124.
UCHAR ATR[MAX_ATR_SIZE]
Tag 0x0303.
UCHAR ICC_Interface_Status
Tag 0x0301.
DWORD Max_Clock
Tag 0x0122.
DWORD Default_Clock
Tag 0x0121.
DWORD Current_D
Tag 0x0204.
DWORD Current_BWT
Tag 0x0209.
RESPONSECODE IFDHCloseChannel(DWORD Lun)
This function should close the reader communication channel for the particular reader.
RESPONSECODE IFDHCreateChannel(DWORD Lun, DWORD Channel)
This function is required to open a communications channel to the port listed by Channel.
DWORD Current_CWT
Tag 0x020A.
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 ...
DWORD Protocol_Type
Tag 0x0201.
UCHAR ICC_Presence
Tag 0x0300.
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()
DWORD Current_IFSC
Tag 0x0207.
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...
DWORD Current_IFSD
Tag 0x0208.
DWORD User_Auth_Device
Tag 0x0142.
DWORD Mechanics_Supported
Tag 0x0150.
RESPONSECODE IFDHCreateChannelByName(DWORD Lun, LPSTR DeviceName)
This function is required to open a communications channel to the port listed by DeviceName.
LPSTR IFD_Type
Tag 0x0101.
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...
DWORD IFD_Version
Tag 0x0102.
DWORD Power_Mgmt
Tag 0x0131.
DWORD IFD_Channel_ID
Tag 0x0110.
DWORD Synch_Supported
Tag 0x0126.
This keeps a list of defines for pcsc-lite.
DWORD Max_IFSD
Tag 0x0125.
DWORD Vendor_Features
Tag 0x0180 - 0x01F0 User Defined.
LPSTR Vendor_Name
Tag 0x0100.
DWORD Current_N
Tag 0x0205.
DWORD Current_F
Tag 0x0203.
DWORD Current_Clock
Tag 0x0202.
RESPONSECODE IFDHICCPresence(DWORD Lun)
This function returns the status of the card inserted in the reader/slot specified by Lun...
#define MAX_ATR_SIZE
Maximum ATR size.
DWORD Current_W
Tag 0x0206.
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...
DWORD Current_EBC
Tag 0x020B.
DWORD Asynch_Supported
Tag 0x0120.
UCHAR ICC_Type
Tag 0x0304.
LPSTR IFD_Serial
Tag 0x0103.