pcsc-lite 1.5.5
|
00001 /* 00002 * MUSCLE SmartCard Development ( http://www.linuxnet.com ) 00003 * 00004 * Copyright (C) 1999-2004 00005 * David Corcoran <corcoran@linuxnet.com> 00006 * Ludovic Rousseau <ludovic.rousseau@free.fr> 00007 * 00008 * $Id: pcsclite.h.in 4316 2009-07-16 14:47:03Z rousseau $ 00009 */ 00010 00018 #ifndef __pcsclite_h__ 00019 #define __pcsclite_h__ 00020 00021 #include <wintypes.h> 00022 00023 #ifdef __cplusplus 00024 extern "C" 00025 { 00026 #endif 00027 00028 typedef long SCARDCONTEXT; 00029 typedef SCARDCONTEXT *PSCARDCONTEXT; 00030 typedef SCARDCONTEXT *LPSCARDCONTEXT; 00031 typedef long SCARDHANDLE; 00032 typedef SCARDHANDLE *PSCARDHANDLE; 00033 typedef SCARDHANDLE *LPSCARDHANDLE; 00034 00035 #define MAX_ATR_SIZE 33 00037 typedef struct 00038 { 00039 const char *szReader; 00040 void *pvUserData; 00041 unsigned long dwCurrentState; 00042 unsigned long dwEventState; 00043 unsigned long cbAtr; 00044 unsigned char rgbAtr[MAX_ATR_SIZE]; 00045 } 00046 SCARD_READERSTATE_A; 00047 00048 typedef SCARD_READERSTATE_A SCARD_READERSTATE, *PSCARD_READERSTATE_A, 00049 *LPSCARD_READERSTATE_A; 00050 00052 typedef struct 00053 { 00054 unsigned long dwProtocol; 00055 unsigned long cbPciLength; 00056 } 00057 SCARD_IO_REQUEST, *PSCARD_IO_REQUEST, *LPSCARD_IO_REQUEST; 00058 00059 typedef const SCARD_IO_REQUEST *LPCSCARD_IO_REQUEST; 00060 00061 extern SCARD_IO_REQUEST g_rgSCardT0Pci, g_rgSCardT1Pci, 00062 g_rgSCardRawPci; 00063 00064 #define SCARD_PCI_T0 (&g_rgSCardT0Pci) 00065 #define SCARD_PCI_T1 (&g_rgSCardT1Pci) 00066 #define SCARD_PCI_RAW (&g_rgSCardRawPci) 00070 #define SCARD_S_SUCCESS 0x00000000 00071 #define SCARD_F_INTERNAL_ERROR 0x80100001 00072 #define SCARD_E_CANCELLED 0x80100002 00073 #define SCARD_E_INVALID_HANDLE 0x80100003 00074 #define SCARD_E_INVALID_PARAMETER 0x80100004 00075 #define SCARD_E_INVALID_TARGET 0x80100005 00076 #define SCARD_E_NO_MEMORY 0x80100006 00077 #define SCARD_F_WAITED_TOO_LONG 0x80100007 00078 #define SCARD_E_INSUFFICIENT_BUFFER 0x80100008 00079 #define SCARD_E_UNKNOWN_READER 0x80100009 00080 #define SCARD_E_TIMEOUT 0x8010000A 00081 #define SCARD_E_SHARING_VIOLATION 0x8010000B 00082 #define SCARD_E_NO_SMARTCARD 0x8010000C 00083 #define SCARD_E_UNKNOWN_CARD 0x8010000D 00084 #define SCARD_E_CANT_DISPOSE 0x8010000E 00085 #define SCARD_E_PROTO_MISMATCH 0x8010000F 00086 #define SCARD_E_NOT_READY 0x80100010 00087 #define SCARD_E_INVALID_VALUE 0x80100011 00088 #define SCARD_E_SYSTEM_CANCELLED 0x80100012 00089 #define SCARD_F_COMM_ERROR 0x80100013 00090 #define SCARD_F_UNKNOWN_ERROR 0x80100014 00091 #define SCARD_E_INVALID_ATR 0x80100015 00092 #define SCARD_E_NOT_TRANSACTED 0x80100016 00093 #define SCARD_E_READER_UNAVAILABLE 0x80100017 00094 #define SCARD_P_SHUTDOWN 0x80100018 00095 #define SCARD_E_PCI_TOO_SMALL 0x80100019 00096 #define SCARD_E_READER_UNSUPPORTED 0x8010001A 00097 #define SCARD_E_DUPLICATE_READER 0x8010001B 00098 #define SCARD_E_CARD_UNSUPPORTED 0x8010001C 00099 #define SCARD_E_NO_SERVICE 0x8010001D 00100 #define SCARD_E_SERVICE_STOPPED 0x8010001E 00101 #define SCARD_E_UNEXPECTED 0x8010001F 00102 #define SCARD_E_ICC_INSTALLATION 0x80100020 00103 #define SCARD_E_ICC_CREATEORDER 0x80100021 00104 /* #define SCARD_E_UNSUPPORTED_FEATURE 0x80100022 / **< This smart card does not support the requested feature. */ 00105 #define SCARD_E_DIR_NOT_FOUND 0x80100023 00106 #define SCARD_E_FILE_NOT_FOUND 0x80100024 00107 #define SCARD_E_NO_DIR 0x80100025 00108 #define SCARD_E_NO_FILE 0x80100026 00109 #define SCARD_E_NO_ACCESS 0x80100027 00110 #define SCARD_E_WRITE_TOO_MANY 0x80100028 00111 #define SCARD_E_BAD_SEEK 0x80100029 00112 #define SCARD_E_INVALID_CHV 0x8010002A 00113 #define SCARD_E_UNKNOWN_RES_MNG 0x8010002B 00114 #define SCARD_E_NO_SUCH_CERTIFICATE 0x8010002C 00115 #define SCARD_E_CERTIFICATE_UNAVAILABLE 0x8010002D 00116 #define SCARD_E_NO_READERS_AVAILABLE 0x8010002E 00117 #define SCARD_E_COMM_DATA_LOST 0x8010002F 00118 #define SCARD_E_NO_KEY_CONTAINER 0x80100030 00119 #define SCARD_E_SERVER_TOO_BUSY 0x80100031 00121 #define SCARD_W_UNSUPPORTED_CARD 0x80100065 00122 #define SCARD_W_UNRESPONSIVE_CARD 0x80100066 00123 #define SCARD_W_UNPOWERED_CARD 0x80100067 00124 #define SCARD_W_RESET_CARD 0x80100068 00125 #define SCARD_W_REMOVED_CARD 0x80100069 00127 #define SCARD_W_SECURITY_VIOLATION 0x8010006A 00128 #define SCARD_W_WRONG_CHV 0x8010006B 00129 #define SCARD_W_CHV_BLOCKED 0x8010006C 00130 #define SCARD_W_EOF 0x8010006D 00131 #define SCARD_W_CANCELLED_BY_USER 0x8010006E 00132 #define SCARD_W_CARD_NOT_AUTHENTICATED 0x8010006F 00134 #define SCARD_AUTOALLOCATE (DWORD)(-1) 00135 #define SCARD_SCOPE_USER 0x0000 00136 #define SCARD_SCOPE_TERMINAL 0x0001 00137 #define SCARD_SCOPE_SYSTEM 0x0002 00139 #define SCARD_PROTOCOL_UNDEFINED 0x0000 00140 #define SCARD_PROTOCOL_UNSET SCARD_PROTOCOL_UNDEFINED /* backward compat */ 00141 #define SCARD_PROTOCOL_T0 0x0001 00142 #define SCARD_PROTOCOL_T1 0x0002 00143 #define SCARD_PROTOCOL_RAW 0x0004 00144 #define SCARD_PROTOCOL_T15 0x0008 00146 #define SCARD_PROTOCOL_ANY (SCARD_PROTOCOL_T0|SCARD_PROTOCOL_T1) 00148 #define SCARD_SHARE_EXCLUSIVE 0x0001 00149 #define SCARD_SHARE_SHARED 0x0002 00150 #define SCARD_SHARE_DIRECT 0x0003 00152 #define SCARD_LEAVE_CARD 0x0000 00153 #define SCARD_RESET_CARD 0x0001 00154 #define SCARD_UNPOWER_CARD 0x0002 00155 #define SCARD_EJECT_CARD 0x0003 00157 #define SCARD_UNKNOWN 0x0001 00158 #define SCARD_ABSENT 0x0002 00159 #define SCARD_PRESENT 0x0004 00160 #define SCARD_SWALLOWED 0x0008 00161 #define SCARD_POWERED 0x0010 00162 #define SCARD_NEGOTIABLE 0x0020 00163 #define SCARD_SPECIFIC 0x0040 00165 #define SCARD_STATE_UNAWARE 0x0000 00166 #define SCARD_STATE_IGNORE 0x0001 00167 #define SCARD_STATE_CHANGED 0x0002 00168 #define SCARD_STATE_UNKNOWN 0x0004 00169 #define SCARD_STATE_UNAVAILABLE 0x0008 00170 #define SCARD_STATE_EMPTY 0x0010 00171 #define SCARD_STATE_PRESENT 0x0020 00172 #define SCARD_STATE_ATRMATCH 0x0040 00173 #define SCARD_STATE_EXCLUSIVE 0x0080 00174 #define SCARD_STATE_INUSE 0x0100 00175 #define SCARD_STATE_MUTE 0x0200 00176 #define SCARD_STATE_UNPOWERED 0x0400 00179 #define SCARD_W_INSERTED_CARD 0x8010006A 00180 #define SCARD_E_UNSUPPORTED_FEATURE 0x8010001F 00182 #ifndef INFINITE 00183 #define INFINITE 0xFFFFFFFF 00184 #endif 00185 00186 #define PCSCLITE_VERSION_NUMBER "1.5.5" 00188 #define PCSCLITE_MAX_READERS_CONTEXTS 16 00189 00190 #define MAX_READERNAME 100 00191 00192 #ifndef SCARD_ATR_LENGTH 00193 #define SCARD_ATR_LENGTH MAX_ATR_SIZE 00194 #endif 00195 00196 /* 00197 * The message and buffer sizes must be multiples of 16. 00198 * The max message size must be at least large enough 00199 * to accomodate the transmit_struct 00200 */ 00201 #define MAX_BUFFER_SIZE 264 00202 #define MAX_BUFFER_SIZE_EXTENDED (4 + 3 + (1<<16) + 3) 00204 /* 00205 * Gets a stringified error response 00206 */ 00207 char *pcsc_stringify_error(const long); 00208 00209 #ifdef __cplusplus 00210 } 00211 #endif 00212 00213 #endif