winscard.h

Go to the documentation of this file.
00001 /*
00002  * MUSCLE SmartCard Development ( http://www.linuxnet.com )
00003  *
00004  * Copyright (C) 1999-2003
00005  *  David Corcoran <corcoran@linuxnet.com>
00006  *  Ludovic Rousseau <ludovic.rousseau@free.fr>
00007  *
00008  * $Id: winscard.h 3260 2009-01-02 15:19:59Z rousseau $
00009  */
00010 
00016 #ifndef __winscard_h__
00017 #define __winscard_h__
00018 
00019 #include <pcsclite.h>
00020 
00021 #ifdef __cplusplus
00022 extern "C"
00023 {
00024 #endif
00025 
00026 #ifndef PCSC_API
00027 #define PCSC_API
00028 #endif
00029 
00030     PCSC_API LONG SCardEstablishContext(DWORD dwScope,
00031         /*@null@*/ LPCVOID pvReserved1, /*@null@*/ LPCVOID pvReserved2,
00032         /*@out@*/ LPSCARDCONTEXT phContext);
00033 
00034     PCSC_API LONG SCardReleaseContext(SCARDCONTEXT hContext);
00035 
00036     PCSC_API LONG SCardIsValidContext(SCARDCONTEXT hContext);
00037 
00038     PCSC_API LONG SCardSetTimeout(SCARDCONTEXT hContext, DWORD dwTimeout);
00039 
00040     PCSC_API LONG SCardConnect(SCARDCONTEXT hContext,
00041         LPCSTR szReader,
00042         DWORD dwShareMode,
00043         DWORD dwPreferredProtocols,
00044         /*@out@*/ LPSCARDHANDLE phCard, /*@out@*/ LPDWORD pdwActiveProtocol);
00045 
00046     PCSC_API LONG SCardReconnect(SCARDHANDLE hCard,
00047         DWORD dwShareMode,
00048         DWORD dwPreferredProtocols,
00049         DWORD dwInitialization, /*@out@*/ LPDWORD pdwActiveProtocol);
00050 
00051     PCSC_API LONG SCardDisconnect(SCARDHANDLE hCard, DWORD dwDisposition);
00052 
00053     PCSC_API LONG SCardBeginTransaction(SCARDHANDLE hCard);
00054 
00055     PCSC_API LONG SCardEndTransaction(SCARDHANDLE hCard, DWORD dwDisposition);
00056 
00057     PCSC_API LONG SCardCancelTransaction(SCARDHANDLE hCard);
00058 
00059     PCSC_API LONG SCardStatus(SCARDHANDLE hCard,
00060         /*@null@*/ /*@out@*/ LPSTR mszReaderName,
00061         /*@null@*/ /*@out@*/ LPDWORD pcchReaderLen,
00062         /*@null@*/ /*@out@*/ LPDWORD pdwState,
00063         /*@null@*/ /*@out@*/ LPDWORD pdwProtocol,
00064         /*@null@*/ /*@out@*/ LPBYTE pbAtr,
00065         /*@null@*/ /*@out@*/ LPDWORD pcbAtrLen);
00066 
00067     PCSC_API LONG SCardGetStatusChange(SCARDCONTEXT hContext,
00068         DWORD dwTimeout,
00069         LPSCARD_READERSTATE_A rgReaderStates, DWORD cReaders);
00070 
00071     PCSC_API LONG SCardControl(SCARDHANDLE hCard, DWORD dwControlCode,
00072         LPCVOID pbSendBuffer, DWORD cbSendLength,
00073         /*@out@*/ LPVOID pbRecvBuffer, DWORD cbRecvLength,
00074         LPDWORD lpBytesReturned);
00075 
00076     PCSC_API LONG SCardTransmit(SCARDHANDLE hCard,
00077         LPCSCARD_IO_REQUEST pioSendPci,
00078         LPCBYTE pbSendBuffer, DWORD cbSendLength,
00079         /*@out@*/ LPSCARD_IO_REQUEST pioRecvPci,
00080         /*@out@*/ LPBYTE pbRecvBuffer, LPDWORD pcbRecvLength);
00081 
00082     PCSC_API LONG SCardListReaderGroups(SCARDCONTEXT hContext,
00083         /*@out@*/ LPSTR mszGroups, LPDWORD pcchGroups);
00084 
00085     PCSC_API LONG SCardListReaders(SCARDCONTEXT hContext,
00086         /*@null@*/ /*@out@*/ LPCSTR mszGroups,
00087         /*@null@*/ /*@out@*/ LPSTR mszReaders,
00088         /*@out@*/ LPDWORD pcchReaders);
00089 
00090     PCSC_API LONG SCardFreeMemory(SCARDCONTEXT hContext, LPCVOID pvMem);
00091 
00092     PCSC_API LONG SCardCancel(SCARDCONTEXT hContext);
00093 
00094     PCSC_API LONG SCardGetAttrib(SCARDHANDLE hCard, DWORD dwAttrId,
00095         /*@out@*/ LPBYTE pbAttr, LPDWORD pcbAttrLen);
00096 
00097     PCSC_API LONG SCardSetAttrib(SCARDHANDLE hCard, DWORD dwAttrId,
00098         LPCBYTE pbAttr, DWORD cbAttrLen);
00099 
00100 #ifdef __cplusplus
00101 }
00102 #endif
00103 
00104 #endif
00105 

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