pcsc-lite  1.7.4
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  * Copyright (C) 2002-2009
00007  *  Ludovic Rousseau <ludovic.rousseau@free.fr>
00008  *
00009  * $Id: winscard.h 5341 2010-10-22 11:36:06Z rousseau $
00010  */
00011 
00017 #ifndef __winscard_h__
00018 #define __winscard_h__
00019 
00020 #include <pcsclite.h>
00021 
00022 #ifdef __cplusplus
00023 extern "C"
00024 {
00025 #endif
00026 
00027 #ifndef PCSC_API
00028 #define PCSC_API
00029 #endif
00030 
00031     PCSC_API LONG SCardEstablishContext(DWORD dwScope,
00032         /*@null@*/ LPCVOID pvReserved1, /*@null@*/ LPCVOID pvReserved2,
00033         /*@out@*/ LPSCARDCONTEXT phContext);
00034 
00035     PCSC_API LONG SCardReleaseContext(SCARDCONTEXT hContext);
00036 
00037     PCSC_API LONG SCardIsValidContext(SCARDCONTEXT hContext);
00038 
00039     PCSC_API LONG SCardConnect(SCARDCONTEXT hContext,
00040         LPCSTR szReader,
00041         DWORD dwShareMode,
00042         DWORD dwPreferredProtocols,
00043         /*@out@*/ LPSCARDHANDLE phCard, /*@out@*/ LPDWORD pdwActiveProtocol);
00044 
00045     PCSC_API LONG SCardReconnect(SCARDHANDLE hCard,
00046         DWORD dwShareMode,
00047         DWORD dwPreferredProtocols,
00048         DWORD dwInitialization, /*@out@*/ LPDWORD pdwActiveProtocol);
00049 
00050     PCSC_API LONG SCardDisconnect(SCARDHANDLE hCard, DWORD dwDisposition);
00051 
00052     PCSC_API LONG SCardBeginTransaction(SCARDHANDLE hCard);
00053 
00054     PCSC_API LONG SCardEndTransaction(SCARDHANDLE hCard, DWORD dwDisposition);
00055 
00056     PCSC_API LONG SCardStatus(SCARDHANDLE hCard,
00057         /*@null@*/ /*@out@*/ LPSTR mszReaderName,
00058         /*@null@*/ /*@out@*/ LPDWORD pcchReaderLen,
00059         /*@null@*/ /*@out@*/ LPDWORD pdwState,
00060         /*@null@*/ /*@out@*/ LPDWORD pdwProtocol,
00061         /*@null@*/ /*@out@*/ LPBYTE pbAtr,
00062         /*@null@*/ /*@out@*/ LPDWORD pcbAtrLen);
00063 
00064     PCSC_API LONG SCardGetStatusChange(SCARDCONTEXT hContext,
00065         DWORD dwTimeout,
00066         LPSCARD_READERSTATE rgReaderStates, DWORD cReaders);
00067 
00068     PCSC_API LONG SCardControl(SCARDHANDLE hCard, DWORD dwControlCode,
00069         LPCVOID pbSendBuffer, DWORD cbSendLength,
00070         /*@out@*/ LPVOID pbRecvBuffer, DWORD cbRecvLength,
00071         LPDWORD lpBytesReturned);
00072 
00073     PCSC_API LONG SCardTransmit(SCARDHANDLE hCard,
00074         const SCARD_IO_REQUEST *pioSendPci,
00075         LPCBYTE pbSendBuffer, DWORD cbSendLength,
00076         /*@out@*/ SCARD_IO_REQUEST *pioRecvPci,
00077         /*@out@*/ LPBYTE pbRecvBuffer, LPDWORD pcbRecvLength);
00078 
00079     PCSC_API LONG SCardListReaderGroups(SCARDCONTEXT hContext,
00080         /*@out@*/ LPSTR mszGroups, LPDWORD pcchGroups);
00081 
00082     PCSC_API LONG SCardListReaders(SCARDCONTEXT hContext,
00083         /*@null@*/ /*@out@*/ LPCSTR mszGroups,
00084         /*@null@*/ /*@out@*/ LPSTR mszReaders,
00085         /*@out@*/ LPDWORD pcchReaders);
00086 
00087     PCSC_API LONG SCardFreeMemory(SCARDCONTEXT hContext, LPCVOID pvMem);
00088 
00089     PCSC_API LONG SCardCancel(SCARDCONTEXT hContext);
00090 
00091     PCSC_API LONG SCardGetAttrib(SCARDHANDLE hCard, DWORD dwAttrId,
00092         /*@out@*/ LPBYTE pbAttr, LPDWORD pcbAttrLen);
00093 
00094     PCSC_API LONG SCardSetAttrib(SCARDHANDLE hCard, DWORD dwAttrId,
00095         LPCBYTE pbAttr, DWORD cbAttrLen);
00096 
00097 #ifdef __cplusplus
00098 }
00099 #endif
00100 
00101 #endif
00102