pcsclite.h

Go to the documentation of this file.
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 3111 2008-09-05 08:12:11Z rousseau $
00009  */
00010 
00016 #ifndef __pcsclite_h__
00017 #define __pcsclite_h__
00018 
00019 #include <wintypes.h>
00020 
00021 #ifdef __cplusplus
00022 extern "C"
00023 {
00024 #endif
00025 
00026 #ifdef WIN32
00027 #include <winscard.h>
00028 #else
00029 typedef long SCARDCONTEXT; 
00030 typedef SCARDCONTEXT *PSCARDCONTEXT;
00031 typedef SCARDCONTEXT *LPSCARDCONTEXT;
00032 typedef long SCARDHANDLE; 
00033 typedef SCARDHANDLE *PSCARDHANDLE;
00034 typedef SCARDHANDLE *LPSCARDHANDLE;
00035 
00036 #define MAX_ATR_SIZE            33  
00038 typedef struct
00039 {
00040     const char *szReader;
00041     void *pvUserData;
00042     unsigned long dwCurrentState;
00043     unsigned long dwEventState;
00044     unsigned long cbAtr;
00045     unsigned char rgbAtr[MAX_ATR_SIZE];
00046 }
00047 SCARD_READERSTATE_A;
00048 
00049 typedef SCARD_READERSTATE_A SCARD_READERSTATE, *PSCARD_READERSTATE_A,
00050     *LPSCARD_READERSTATE_A;
00051 
00053 typedef struct
00054 {
00055     unsigned long dwProtocol;   
00056     unsigned long cbPciLength;  
00057 }
00058 SCARD_IO_REQUEST, *PSCARD_IO_REQUEST, *LPSCARD_IO_REQUEST;
00059 
00060 typedef const SCARD_IO_REQUEST *LPCSCARD_IO_REQUEST;
00061 
00062 extern SCARD_IO_REQUEST g_rgSCardT0Pci, g_rgSCardT1Pci,
00063     g_rgSCardRawPci;
00064 
00065 #define SCARD_PCI_T0    (&g_rgSCardT0Pci) 
00066 #define SCARD_PCI_T1    (&g_rgSCardT1Pci) 
00067 #define SCARD_PCI_RAW   (&g_rgSCardRawPci) 
00069 #define SCARD_S_SUCCESS         0x00000000 
00070 #define SCARD_F_INTERNAL_ERROR      0x80100001 
00071 #define SCARD_E_CANCELLED       0x80100002 
00072 #define SCARD_E_INVALID_HANDLE      0x80100003 
00073 #define SCARD_E_INVALID_PARAMETER   0x80100004 
00074 #define SCARD_E_INVALID_TARGET      0x80100005 
00075 #define SCARD_E_NO_MEMORY       0x80100006 
00076 #define SCARD_F_WAITED_TOO_LONG     0x80100007 
00077 #define SCARD_E_INSUFFICIENT_BUFFER 0x80100008 
00078 #define SCARD_E_UNKNOWN_READER      0x80100009 
00079 #define SCARD_E_TIMEOUT         0x8010000A 
00080 #define SCARD_E_SHARING_VIOLATION   0x8010000B 
00081 #define SCARD_E_NO_SMARTCARD        0x8010000C 
00082 #define SCARD_E_UNKNOWN_CARD        0x8010000D 
00083 #define SCARD_E_CANT_DISPOSE        0x8010000E 
00084 #define SCARD_E_PROTO_MISMATCH      0x8010000F 
00085 #define SCARD_E_NOT_READY       0x80100010 
00086 #define SCARD_E_INVALID_VALUE       0x80100011 
00087 #define SCARD_E_SYSTEM_CANCELLED    0x80100012 
00088 #define SCARD_F_COMM_ERROR      0x80100013 
00089 #define SCARD_F_UNKNOWN_ERROR       0x80100014 
00090 #define SCARD_E_INVALID_ATR     0x80100015 
00091 #define SCARD_E_NOT_TRANSACTED      0x80100016 
00092 #define SCARD_E_READER_UNAVAILABLE  0x80100017 
00094 #define SCARD_W_UNSUPPORTED_CARD    0x80100065 
00095 #define SCARD_W_UNRESPONSIVE_CARD   0x80100066 
00096 #define SCARD_W_UNPOWERED_CARD      0x80100067 
00097 #define SCARD_W_RESET_CARD      0x80100068 
00098 #define SCARD_W_REMOVED_CARD        0x80100069 
00100 #define SCARD_E_PCI_TOO_SMALL       0x80100019 
00101 #define SCARD_E_READER_UNSUPPORTED  0x8010001A 
00102 #define SCARD_E_DUPLICATE_READER    0x8010001B 
00103 #define SCARD_E_CARD_UNSUPPORTED    0x8010001C 
00104 #define SCARD_E_NO_SERVICE      0x8010001D 
00105 #define SCARD_E_SERVICE_STOPPED     0x8010001E 
00106 #define SCARD_E_NO_READERS_AVAILABLE    0x8010002E 
00108 #define SCARD_AUTOALLOCATE (DWORD)(-1)  
00109 #define SCARD_SCOPE_USER        0x0000  
00110 #define SCARD_SCOPE_TERMINAL        0x0001  
00111 #define SCARD_SCOPE_SYSTEM      0x0002  
00113 #define SCARD_PROTOCOL_UNDEFINED    0x0000  
00114 #define SCARD_PROTOCOL_UNSET SCARD_PROTOCOL_UNDEFINED   /* backward compat */
00115 #define SCARD_PROTOCOL_T0       0x0001  
00116 #define SCARD_PROTOCOL_T1       0x0002  
00117 #define SCARD_PROTOCOL_RAW      0x0004  
00118 #define SCARD_PROTOCOL_T15      0x0008  
00120 #define SCARD_PROTOCOL_ANY      (SCARD_PROTOCOL_T0|SCARD_PROTOCOL_T1)   
00122 #define SCARD_SHARE_EXCLUSIVE       0x0001  
00123 #define SCARD_SHARE_SHARED      0x0002  
00124 #define SCARD_SHARE_DIRECT      0x0003  
00126 #define SCARD_LEAVE_CARD        0x0000  
00127 #define SCARD_RESET_CARD        0x0001  
00128 #define SCARD_UNPOWER_CARD      0x0002  
00129 #define SCARD_EJECT_CARD        0x0003  
00131 #define SCARD_UNKNOWN           0x0001  
00132 #define SCARD_ABSENT            0x0002  
00133 #define SCARD_PRESENT           0x0004  
00134 #define SCARD_SWALLOWED         0x0008  
00135 #define SCARD_POWERED           0x0010  
00136 #define SCARD_NEGOTIABLE        0x0020  
00137 #define SCARD_SPECIFIC          0x0040  
00139 #define SCARD_STATE_UNAWARE     0x0000  
00140 #define SCARD_STATE_IGNORE      0x0001  
00141 #define SCARD_STATE_CHANGED     0x0002  
00142 #define SCARD_STATE_UNKNOWN     0x0004  
00143 #define SCARD_STATE_UNAVAILABLE     0x0008  
00144 #define SCARD_STATE_EMPTY       0x0010  
00145 #define SCARD_STATE_PRESENT     0x0020  
00146 #define SCARD_STATE_ATRMATCH        0x0040  
00147 #define SCARD_STATE_EXCLUSIVE       0x0080  
00148 #define SCARD_STATE_INUSE       0x0100  
00149 #define SCARD_STATE_MUTE        0x0200  
00150 #define SCARD_STATE_UNPOWERED       0x0400  
00152 #endif
00153 
00155 #define SCARD_W_INSERTED_CARD       0x8010006A
00156 #define SCARD_E_UNSUPPORTED_FEATURE 0x8010001F 
00158 #ifndef INFINITE
00159 #define INFINITE            0xFFFFFFFF  
00160 #endif
00161 
00162 #define PCSCLITE_VERSION_NUMBER     "1.5.2" 
00164 #define PCSCLITE_MAX_READERS_CONTEXTS           16
00165 
00166 #define MAX_READERNAME          100
00167 
00168 #ifndef SCARD_ATR_LENGTH
00169 #define SCARD_ATR_LENGTH        MAX_ATR_SIZE    
00170 #endif
00171 
00172 /*
00173  * The message and buffer sizes must be multiples of 16.
00174  * The max message size must be at least large enough
00175  * to accomodate the transmit_struct
00176  */
00177 #define MAX_BUFFER_SIZE         264 
00178 #define MAX_BUFFER_SIZE_EXTENDED    (4 + 3 + (1<<16) + 3)   
00180 /*
00181  * Gets a stringified error response
00182  */
00183 char *pcsc_stringify_error(const long);
00184 
00185 #ifdef __cplusplus
00186 }
00187 #endif
00188 
00189 #endif

Generated on Mon Aug 17 01:00:10 2009 for pcsc-lite by  doxygen 1.5.9