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