pcsc-lite 1.6.4
|
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 5134 2010-08-15 14:48:18Z 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 SCardSetTimeout(SCARDCONTEXT hContext, DWORD dwTimeout); 00040 00041 PCSC_API LONG SCardConnect(SCARDCONTEXT hContext, 00042 LPCSTR szReader, 00043 DWORD dwShareMode, 00044 DWORD dwPreferredProtocols, 00045 /*@out@*/ LPSCARDHANDLE phCard, /*@out@*/ LPDWORD pdwActiveProtocol); 00046 00047 PCSC_API LONG SCardReconnect(SCARDHANDLE hCard, 00048 DWORD dwShareMode, 00049 DWORD dwPreferredProtocols, 00050 DWORD dwInitialization, /*@out@*/ LPDWORD pdwActiveProtocol); 00051 00052 PCSC_API LONG SCardDisconnect(SCARDHANDLE hCard, DWORD dwDisposition); 00053 00054 PCSC_API LONG SCardBeginTransaction(SCARDHANDLE hCard); 00055 00056 PCSC_API LONG SCardEndTransaction(SCARDHANDLE hCard, DWORD dwDisposition); 00057 00058 PCSC_API LONG SCardCancelTransaction(SCARDHANDLE hCard); 00059 00060 PCSC_API LONG SCardStatus(SCARDHANDLE hCard, 00061 /*@null@*/ /*@out@*/ LPSTR mszReaderName, 00062 /*@null@*/ /*@out@*/ LPDWORD pcchReaderLen, 00063 /*@null@*/ /*@out@*/ LPDWORD pdwState, 00064 /*@null@*/ /*@out@*/ LPDWORD pdwProtocol, 00065 /*@null@*/ /*@out@*/ LPBYTE pbAtr, 00066 /*@null@*/ /*@out@*/ LPDWORD pcbAtrLen); 00067 00068 PCSC_API LONG SCardGetStatusChange(SCARDCONTEXT hContext, 00069 DWORD dwTimeout, 00070 LPSCARD_READERSTATE rgReaderStates, DWORD cReaders); 00071 00072 PCSC_API LONG SCardControl(SCARDHANDLE hCard, DWORD dwControlCode, 00073 LPCVOID pbSendBuffer, DWORD cbSendLength, 00074 /*@out@*/ LPVOID pbRecvBuffer, DWORD cbRecvLength, 00075 LPDWORD lpBytesReturned); 00076 00077 PCSC_API LONG SCardTransmit(SCARDHANDLE hCard, 00078 const SCARD_IO_REQUEST *pioSendPci, 00079 LPCBYTE pbSendBuffer, DWORD cbSendLength, 00080 /*@out@*/ SCARD_IO_REQUEST *pioRecvPci, 00081 /*@out@*/ LPBYTE pbRecvBuffer, LPDWORD pcbRecvLength); 00082 00083 PCSC_API LONG SCardListReaderGroups(SCARDCONTEXT hContext, 00084 /*@out@*/ LPSTR mszGroups, LPDWORD pcchGroups); 00085 00086 PCSC_API LONG SCardListReaders(SCARDCONTEXT hContext, 00087 /*@null@*/ /*@out@*/ LPCSTR mszGroups, 00088 /*@null@*/ /*@out@*/ LPSTR mszReaders, 00089 /*@out@*/ LPDWORD pcchReaders); 00090 00091 PCSC_API LONG SCardFreeMemory(SCARDCONTEXT hContext, LPCVOID pvMem); 00092 00093 PCSC_API LONG SCardCancel(SCARDCONTEXT hContext); 00094 00095 PCSC_API LONG SCardGetAttrib(SCARDHANDLE hCard, DWORD dwAttrId, 00096 /*@out@*/ LPBYTE pbAttr, LPDWORD pcbAttrLen); 00097 00098 PCSC_API LONG SCardSetAttrib(SCARDHANDLE hCard, DWORD dwAttrId, 00099 LPCBYTE pbAttr, DWORD cbAttrLen); 00100 00101 #ifdef __cplusplus 00102 } 00103 #endif 00104 00105 #endif 00106