Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00021 #ifndef __pcsclite_h__
00022 #define __pcsclite_h__
00023
00024 #include <wintypes.h>
00025
00026 #ifdef __cplusplus
00027 extern "C"
00028 {
00029 #endif
00030
00031 typedef long SCARDCONTEXT;
00032 typedef SCARDCONTEXT *PSCARDCONTEXT;
00033 typedef SCARDCONTEXT *LPSCARDCONTEXT;
00034 typedef long SCARDHANDLE;
00035 typedef SCARDHANDLE *PSCARDHANDLE;
00036 typedef SCARDHANDLE *LPSCARDHANDLE;
00037
00038 #define MAX_ATR_SIZE 33
00040 typedef struct
00041 {
00042 const char *szReader;
00043 void *pvUserData;
00044 unsigned long dwCurrentState;
00045 unsigned long dwEventState;
00046 unsigned long cbAtr;
00047 unsigned char rgbAtr[MAX_ATR_SIZE];
00048 }
00049 SCARD_READERSTATE_A;
00050
00051 typedef SCARD_READERSTATE_A SCARD_READERSTATE, *PSCARD_READERSTATE_A,
00052 *LPSCARD_READERSTATE_A;
00053
00055 typedef struct
00056 {
00057 unsigned long dwProtocol;
00058 unsigned long cbPciLength;
00059 }
00060 SCARD_IO_REQUEST, *PSCARD_IO_REQUEST, *LPSCARD_IO_REQUEST;
00061
00062 typedef const SCARD_IO_REQUEST *LPCSCARD_IO_REQUEST;
00063
00064 extern SCARD_IO_REQUEST g_rgSCardT0Pci, g_rgSCardT1Pci, g_rgSCardRawPci;
00065
00066 #define SCARD_PCI_T0 (&g_rgSCardT0Pci)
00067 #define SCARD_PCI_T1 (&g_rgSCardT1Pci)
00068 #define SCARD_PCI_RAW (&g_rgSCardRawPci)
00072 #define SCARD_S_SUCCESS ((LONG)0x00000000)
00073 #define SCARD_F_INTERNAL_ERROR ((LONG)0x80100001)
00074 #define SCARD_E_CANCELLED ((LONG)0x80100002)
00075 #define SCARD_E_INVALID_HANDLE ((LONG)0x80100003)
00076 #define SCARD_E_INVALID_PARAMETER ((LONG)0x80100004)
00077 #define SCARD_E_INVALID_TARGET ((LONG)0x80100005)
00078 #define SCARD_E_NO_MEMORY ((LONG)0x80100006)
00079 #define SCARD_F_WAITED_TOO_LONG ((LONG)0x80100007)
00080 #define SCARD_E_INSUFFICIENT_BUFFER ((LONG)0x80100008)
00081 #define SCARD_E_UNKNOWN_READER ((LONG)0x80100009)
00082 #define SCARD_E_TIMEOUT ((LONG)0x8010000A)
00083 #define SCARD_E_SHARING_VIOLATION ((LONG)0x8010000B)
00084 #define SCARD_E_NO_SMARTCARD ((LONG)0x8010000C)
00085 #define SCARD_E_UNKNOWN_CARD ((LONG)0x8010000D)
00086 #define SCARD_E_CANT_DISPOSE ((LONG)0x8010000E)
00087 #define SCARD_E_PROTO_MISMATCH ((LONG)0x8010000F)
00088 #define SCARD_E_NOT_READY ((LONG)0x80100010)
00089 #define SCARD_E_INVALID_VALUE ((LONG)0x80100011)
00090 #define SCARD_E_SYSTEM_CANCELLED ((LONG)0x80100012)
00091 #define SCARD_F_COMM_ERROR ((LONG)0x80100013)
00092 #define SCARD_F_UNKNOWN_ERROR ((LONG)0x80100014)
00093 #define SCARD_E_INVALID_ATR ((LONG)0x80100015)
00094 #define SCARD_E_NOT_TRANSACTED ((LONG)0x80100016)
00095 #define SCARD_E_READER_UNAVAILABLE ((LONG)0x80100017)
00096 #define SCARD_P_SHUTDOWN ((LONG)0x80100018)
00097 #define SCARD_E_PCI_TOO_SMALL ((LONG)0x80100019)
00098 #define SCARD_E_READER_UNSUPPORTED ((LONG)0x8010001A)
00099 #define SCARD_E_DUPLICATE_READER ((LONG)0x8010001B)
00100 #define SCARD_E_CARD_UNSUPPORTED ((LONG)0x8010001C)
00101 #define SCARD_E_NO_SERVICE ((LONG)0x8010001D)
00102 #define SCARD_E_SERVICE_STOPPED ((LONG)0x8010001E)
00103 #define SCARD_E_UNEXPECTED ((LONG)0x8010001F)
00104 #define SCARD_E_UNSUPPORTED_FEATURE ((LONG)0x8010001F)
00105 #define SCARD_E_ICC_INSTALLATION ((LONG)0x80100020)
00106 #define SCARD_E_ICC_CREATEORDER ((LONG)0x80100021)
00107
00108 #define SCARD_E_DIR_NOT_FOUND ((LONG)0x80100023)
00109 #define SCARD_E_FILE_NOT_FOUND ((LONG)0x80100024)
00110 #define SCARD_E_NO_DIR ((LONG)0x80100025)
00111 #define SCARD_E_NO_FILE ((LONG)0x80100026)
00112 #define SCARD_E_NO_ACCESS ((LONG)0x80100027)
00113 #define SCARD_E_WRITE_TOO_MANY ((LONG)0x80100028)
00114 #define SCARD_E_BAD_SEEK ((LONG)0x80100029)
00115 #define SCARD_E_INVALID_CHV ((LONG)0x8010002A)
00116 #define SCARD_E_UNKNOWN_RES_MNG ((LONG)0x8010002B)
00117 #define SCARD_E_NO_SUCH_CERTIFICATE ((LONG)0x8010002C)
00118 #define SCARD_E_CERTIFICATE_UNAVAILABLE ((LONG)0x8010002D)
00119 #define SCARD_E_NO_READERS_AVAILABLE ((LONG)0x8010002E)
00120 #define SCARD_E_COMM_DATA_LOST ((LONG)0x8010002F)
00121 #define SCARD_E_NO_KEY_CONTAINER ((LONG)0x80100030)
00122 #define SCARD_E_SERVER_TOO_BUSY ((LONG)0x80100031)
00124 #define SCARD_W_UNSUPPORTED_CARD ((LONG)0x80100065)
00125 #define SCARD_W_UNRESPONSIVE_CARD ((LONG)0x80100066)
00126 #define SCARD_W_UNPOWERED_CARD ((LONG)0x80100067)
00127 #define SCARD_W_RESET_CARD ((LONG)0x80100068)
00128 #define SCARD_W_REMOVED_CARD ((LONG)0x80100069)
00130 #define SCARD_W_SECURITY_VIOLATION ((LONG)0x8010006A)
00131 #define SCARD_W_WRONG_CHV ((LONG)0x8010006B)
00132 #define SCARD_W_CHV_BLOCKED ((LONG)0x8010006C)
00133 #define SCARD_W_EOF ((LONG)0x8010006D)
00134 #define SCARD_W_CANCELLED_BY_USER ((LONG)0x8010006E)
00135 #define SCARD_W_CARD_NOT_AUTHENTICATED ((LONG)0x8010006F)
00137 #define SCARD_AUTOALLOCATE (DWORD)(-1)
00138 #define SCARD_SCOPE_USER 0x0000
00139 #define SCARD_SCOPE_TERMINAL 0x0001
00140 #define SCARD_SCOPE_SYSTEM 0x0002
00142 #define SCARD_PROTOCOL_UNDEFINED 0x0000
00143 #define SCARD_PROTOCOL_UNSET SCARD_PROTOCOL_UNDEFINED
00144 #define SCARD_PROTOCOL_T0 0x0001
00145 #define SCARD_PROTOCOL_T1 0x0002
00146 #define SCARD_PROTOCOL_RAW 0x0004
00147 #define SCARD_PROTOCOL_T15 0x0008
00149 #define SCARD_PROTOCOL_ANY (SCARD_PROTOCOL_T0|SCARD_PROTOCOL_T1)
00151 #define SCARD_SHARE_EXCLUSIVE 0x0001
00152 #define SCARD_SHARE_SHARED 0x0002
00153 #define SCARD_SHARE_DIRECT 0x0003
00155 #define SCARD_LEAVE_CARD 0x0000
00156 #define SCARD_RESET_CARD 0x0001
00157 #define SCARD_UNPOWER_CARD 0x0002
00158 #define SCARD_EJECT_CARD 0x0003
00160 #define SCARD_UNKNOWN 0x0001
00161 #define SCARD_ABSENT 0x0002
00162 #define SCARD_PRESENT 0x0004
00163 #define SCARD_SWALLOWED 0x0008
00164 #define SCARD_POWERED 0x0010
00165 #define SCARD_NEGOTIABLE 0x0020
00166 #define SCARD_SPECIFIC 0x0040
00168 #define SCARD_STATE_UNAWARE 0x0000
00169 #define SCARD_STATE_IGNORE 0x0001
00170 #define SCARD_STATE_CHANGED 0x0002
00171 #define SCARD_STATE_UNKNOWN 0x0004
00172 #define SCARD_STATE_UNAVAILABLE 0x0008
00173 #define SCARD_STATE_EMPTY 0x0010
00174 #define SCARD_STATE_PRESENT 0x0020
00175 #define SCARD_STATE_ATRMATCH 0x0040
00176 #define SCARD_STATE_EXCLUSIVE 0x0080
00177 #define SCARD_STATE_INUSE 0x0100
00178 #define SCARD_STATE_MUTE 0x0200
00179 #define SCARD_STATE_UNPOWERED 0x0400
00181 #ifndef INFINITE
00182 #define INFINITE 0xFFFFFFFF
00183 #endif
00184
00185 #define PCSCLITE_VERSION_NUMBER "1.6.1"
00187 #define PCSCLITE_MAX_READERS_CONTEXTS 16
00188
00189 #define MAX_READERNAME 100
00190
00191 #ifndef SCARD_ATR_LENGTH
00192 #define SCARD_ATR_LENGTH MAX_ATR_SIZE
00193 #endif
00194
00195
00196
00197
00198
00199
00200 #define MAX_BUFFER_SIZE 264
00201 #define MAX_BUFFER_SIZE_EXTENDED (4 + 3 + (1<<16) + 3)
00203
00204
00205
00206 char *pcsc_stringify_error(const long);
00207
00208 #ifdef __cplusplus
00209 }
00210 #endif
00211
00212 #endif