changed protocoll to use 2 byte length
[nfcbtpcsc.git] / winscard.h
blob5d4c7d47a9f0a61d17744a1eb398e00b41d7d458
1 /*
2 * MUSCLE SmartCard Development ( http://www.linuxnet.com )
4 * Copyright (C) 1999-2003
5 * David Corcoran <corcoran@linuxnet.com>
6 * Ludovic Rousseau <ludovic.rousseau@free.fr>
8 * $Id: winscard.h 3260 2009-01-02 15:19:59Z rousseau $
9 */
11 /**
12 * @file
13 * @brief This handles smartcard reader communications.
16 #ifndef __winscard_h__
17 #define __winscard_h__
19 #include <pcsclite.h>
21 #ifdef __cplusplus
22 extern "C"
24 #endif
26 #ifndef PCSC_API
27 #define PCSC_API
28 #endif
30 PCSC_API LONG SCardEstablishContext(DWORD dwScope,
31 /*@null@*/ LPCVOID pvReserved1, /*@null@*/ LPCVOID pvReserved2,
32 /*@out@*/ LPSCARDCONTEXT phContext);
34 PCSC_API LONG SCardReleaseContext(SCARDCONTEXT hContext);
36 PCSC_API LONG SCardIsValidContext(SCARDCONTEXT hContext);
38 PCSC_API LONG SCardSetTimeout(SCARDCONTEXT hContext, DWORD dwTimeout);
40 PCSC_API LONG SCardConnect(SCARDCONTEXT hContext,
41 LPCSTR szReader,
42 DWORD dwShareMode,
43 DWORD dwPreferredProtocols,
44 /*@out@*/ LPSCARDHANDLE phCard, /*@out@*/ LPDWORD pdwActiveProtocol);
46 PCSC_API LONG SCardReconnect(SCARDHANDLE hCard,
47 DWORD dwShareMode,
48 DWORD dwPreferredProtocols,
49 DWORD dwInitialization, /*@out@*/ LPDWORD pdwActiveProtocol);
51 PCSC_API LONG SCardDisconnect(SCARDHANDLE hCard, DWORD dwDisposition);
53 PCSC_API LONG SCardBeginTransaction(SCARDHANDLE hCard);
55 PCSC_API LONG SCardEndTransaction(SCARDHANDLE hCard, DWORD dwDisposition);
57 PCSC_API LONG SCardCancelTransaction(SCARDHANDLE hCard);
59 PCSC_API LONG SCardStatus(SCARDHANDLE hCard,
60 /*@null@*/ /*@out@*/ LPSTR mszReaderName,
61 /*@null@*/ /*@out@*/ LPDWORD pcchReaderLen,
62 /*@null@*/ /*@out@*/ LPDWORD pdwState,
63 /*@null@*/ /*@out@*/ LPDWORD pdwProtocol,
64 /*@null@*/ /*@out@*/ LPBYTE pbAtr,
65 /*@null@*/ /*@out@*/ LPDWORD pcbAtrLen);
67 PCSC_API LONG SCardGetStatusChange(SCARDCONTEXT hContext,
68 DWORD dwTimeout,
69 LPSCARD_READERSTATE_A rgReaderStates, DWORD cReaders);
71 PCSC_API LONG SCardControl(SCARDHANDLE hCard, DWORD dwControlCode,
72 LPCVOID pbSendBuffer, DWORD cbSendLength,
73 /*@out@*/ LPVOID pbRecvBuffer, DWORD cbRecvLength,
74 LPDWORD lpBytesReturned);
76 PCSC_API LONG SCardTransmit(SCARDHANDLE hCard,
77 LPCSCARD_IO_REQUEST pioSendPci,
78 LPCBYTE pbSendBuffer, DWORD cbSendLength,
79 /*@out@*/ LPSCARD_IO_REQUEST pioRecvPci,
80 /*@out@*/ LPBYTE pbRecvBuffer, LPDWORD pcbRecvLength);
82 PCSC_API LONG SCardListReaderGroups(SCARDCONTEXT hContext,
83 /*@out@*/ LPSTR mszGroups, LPDWORD pcchGroups);
85 PCSC_API LONG SCardListReaders(SCARDCONTEXT hContext,
86 /*@null@*/ /*@out@*/ LPCSTR mszGroups,
87 /*@null@*/ /*@out@*/ LPSTR mszReaders,
88 /*@out@*/ LPDWORD pcchReaders);
90 PCSC_API LONG SCardFreeMemory(SCARDCONTEXT hContext, LPCVOID pvMem);
92 PCSC_API LONG SCardCancel(SCARDCONTEXT hContext);
94 PCSC_API LONG SCardGetAttrib(SCARDHANDLE hCard, DWORD dwAttrId,
95 /*@out@*/ LPBYTE pbAttr, LPDWORD pcbAttrLen);
97 PCSC_API LONG SCardSetAttrib(SCARDHANDLE hCard, DWORD dwAttrId,
98 LPCBYTE pbAttr, DWORD cbAttrLen);
100 #ifdef __cplusplus
102 #endif
104 #endif