pcsc-lite 1.7.2
|
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