00001
00014 #ifndef IFD_HANDLER_H
00015 #define IFD_HANDLER_H
00016
00017 typedef struct
00018 {
00019 LONG Protocol;
00020 LONG Length;
00021 } SCARD_IO_HEADER , *PSCARD_IO_HEADER;
00022
00023
00024
00025
00026
00027 #define TAG_IFD_ATR 0x0303
00028 #define TAG_IFD_SLOTNUM 0x0180
00029 #define TAG_IFD_SLOT_THREAD_SAFE 0x0FAC
00030 #define TAG_IFD_THREAD_SAFE 0x0FAD
00031 #define TAG_IFD_SLOTS_NUMBER 0x0FAE
00032 #define TAG_IFD_SIMULTANEOUS_ACCESS 0x0FAF
00033
00034
00035
00036
00037
00038
00039
00040
00041 #define IFD_HVERSION_1_0 0x00010000
00042
00043
00044
00045
00046
00047
00048
00049
00050 #define IFD_POWER_UP 500
00051 #define IFD_POWER_DOWN 501
00052 #define IFD_RESET 502
00054 #define IFD_NEGOTIATE_PTS1 1
00055 #define IFD_NEGOTIATE_PTS2 2
00056 #define IFD_NEGOTIATE_PTS3 4
00057
00058 #define IFD_SUCCESS 0
00059 #define IFD_ERROR_TAG 600
00060 #define IFD_ERROR_SET_FAILURE 601
00061 #define IFD_ERROR_VALUE_READ_ONLY 602
00062 #define IFD_ERROR_PTS_FAILURE 605
00063 #define IFD_ERROR_NOT_SUPPORTED 606
00064 #define IFD_PROTOCOL_NOT_SUPPORTED 607
00065 #define IFD_ERROR_POWER_ACTION 608
00066 #define IFD_ERROR_SWALLOW 609
00067 #define IFD_ERROR_EJECT 610
00068 #define IFD_ERROR_CONFISCATE 611
00069 #define IFD_COMMUNICATION_ERROR 612
00070 #define IFD_RESPONSE_TIMEOUT 613
00071 #define IFD_NOT_SUPPORTED 614
00072 #define IFD_ICC_PRESENT 615
00073 #define IFD_ICC_NOT_PRESENT 616
00074
00075
00076
00077
00078
00079 RESPONSECODE IFDHCreateChannel( LONG, LONG );
00080 RESPONSECODE IFDHCloseChannel( LONG );
00081 RESPONSECODE IFDHGetCapabilities( LONG, LONG, LONG *, BYTE* );
00082 RESPONSECODE IFDHSetCapabilities( LONG, LONG, LONG, BYTE* );
00083 RESPONSECODE IFDHSetProtocolParameters( LONG, LONG, BYTE, BYTE, BYTE, BYTE );
00084 RESPONSECODE IFDHPowerICC( LONG, LONG, BYTE*, LONG * );
00085 RESPONSECODE IFDHTransmitToICC( LONG, SCARD_IO_HEADER, BYTE*, LONG, BYTE*, LONG *,
00086 PSCARD_IO_HEADER);
00087 RESPONSECODE IFDHControl( LONG, BYTE*, LONG, BYTE*, LONG * );
00088 RESPONSECODE IFDHICCPresence( LONG );
00089
00090
00091 #ifdef USING_VERSION_ONE_DRIVER
00092
00093
00094
00095 RESPONSECODE IO_Create_Channel( LONG );
00096 RESPONSECODE IO_Close_Channel( );
00097 RESPONSECODE IFD_Get_Capabilities( LONG, BYTE* );
00098 RESPONSECODE IFD_Set_Capabilities( LONG, BYTE* );
00099 RESPONSECODE IFD_Set_Protocol_Parameters( LONG, BYTE, BYTE, BYTE, BYTE );
00100 RESPONSECODE IFD_Power_ICC( LONG );
00101 RESPONSECODE IFD_Swallow_ICC( );
00102 RESPONSECODE IFD_Eject_ICC( );
00103 RESPONSECODE IFD_Confiscate_ICC( );
00104 RESPONSECODE IFD_Transmit_to_ICC( SCARD_IO_HEADER, BYTE*, LONG, BYTE*, LONG *,
00105 PSCARD_IO_HEADER );
00106 RESPONSECODE IFD_Is_ICC_Present( );
00107 RESPONSECODE IFD_Is_ICC_Absent( );
00108 #endif
00109
00110 #endif