00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
#ifndef CTDRIVER_PCSC_H
00030 #define CTDRIVER_PCSC_H "$Id: ctdriver_pcsc.h,v 1.3 2003/02/17 04:17:48 aquamaniac Exp $"
00031
00032
#ifdef __cplusplus
00033
extern "C" {
00034
#endif
00035
00036
00037
#include <winscard.h>
00038
#include <ctcore.h>
00039
#include <chameleon/libloader.h>
00040
00041
00042 typedef LONG (*
CTDPCSCESTABLISHCONTEXTPTR)(DWORD dwScope,
00043 LPCVOID pvReserved1,
00044 LPCVOID pvReserved2,
00045 LPSCARDCONTEXT phContext);
00046 typedef LONG (*
CTDPCSCRELEASECONTEXTPTR)(SCARDCONTEXT hContext);
00047 typedef LONG (*
CTDPCSCLISTREADERSPTR)(SCARDCONTEXT hContext,
00048 LPCSTR mszGroups,
00049 LPSTR mszReaders,
00050 LPDWORD pcchReaders);
00051 typedef LONG (*
CTDPCSCCONNECTPTR)(SCARDCONTEXT hContext,
00052 LPCSTR szReader,
00053 DWORD dwShareMode,
00054 DWORD dwPreferredProtocols,
00055 LPSCARDHANDLE phCard,
00056 LPDWORD pdwActiveProtocol);
00057 typedef LONG (*
CTDPCSCRECONNECTPTR)(SCARDHANDLE phCard,
00058 DWORD dwShareMode,
00059 DWORD dwPreferredProtocols,
00060 DWORD dwInit,
00061 LPDWORD pdwActiveProtocol);
00062 typedef LONG (*
CTDPCSCDISCONNECTPTR)(SCARDHANDLE hCard,
00063 DWORD dwDisposition);
00064 typedef LONG (*
CTDPCSCCONTROLPTR)(SCARDHANDLE hCard,
00065 LPCBYTE pbSendBuffer,
00066 DWORD cbSendLength,
00067 LPBYTE pbRecvBuffer,
00068 LPDWORD pcbRecvLength);
00069 typedef LONG (*
CTDPCSCTRANSMITPTR)(SCARDHANDLE hCard,
00070 LPCSCARD_IO_REQUEST pioSendPci,
00071 LPCBYTE pbSendBuffer,
00072 DWORD cbSendLength,
00073 LPCSCARD_IO_REQUEST pioRecvPci,
00074 LPBYTE pbRecvBuffer,
00075 LPDWORD pcbRecvLength);
00076 typedef LONG (*
CTDPCSCSTATUSPTR)(SCARDHANDLE hCard,
00077 LPSTR szReaderName,
00078 LPDWORD pcchReaderLen,
00079 LPDWORD pdwState,
00080 LPDWORD pdwProtocol,
00081 LPBYTE pbAtr,
00082 LPDWORD pcbAtrLen);
00083
00084
00085
00086 typedef struct CTDRIVERPCSC_DRIVERDATASTRUCT CTDRIVERPCSC_DRIVERDATA;
00087 typedef struct CTDRIVERPCSC_READERDATASTRUCT CTDRIVERPCSC_READERDATA;
00088
00089
00090
00091 struct CTDRIVERPCSC_DRIVERDATASTRUCT {
00092 CTDPCSCESTABLISHCONTEXTPTR establishContext;
00093 CTDPCSCRELEASECONTEXTPTR releaseContext;
00094 CTDPCSCLISTREADERSPTR listReaders;
00095 CTDPCSCCONNECTPTR connect;
00096 CTDPCSCRECONNECTPTR reconnect;
00097 CTDPCSCDISCONNECTPTR disconnect;
00098 CTDPCSCCONTROLPTR control;
00099 CTDPCSCTRANSMITPTR transmit;
00100 CTDPCSCSTATUSPTR status;
00101 SCARDCONTEXT
context;
00102 CHLIBLOADERHANDLE libHandle;
00103 };
00104
00105
00106 struct CTDRIVERPCSC_READERDATASTRUCT {
00107 SCARDHANDLE
cardhandle;
00108 DWORD
protocol;
00109 };
00110
00111
00112
ERRORCODE CTDriver_PCSC_Open(
CTDRIVERTABLE *dt,
00113 CTREADERDESCRIPTION *rd,
00114 CONFIGGROUP *ddescr);
00115
00116
ERRORCODE CTDriver_PCSC_Close(
CTDRIVERTABLE *dt);
00117
00118
00119
#ifdef __cplusplus
00120
}
00121
#endif
00122
00123
00124
#endif
00125
00126