blob: 37d40bb85bef0bf80c6f443ac3bebad2dfe643f8 [file] [log] [blame]
J. Duke319a3b92007-12-01 00:00:00 +00001/*
2 * This handles smartcard reader communications.
3 *
4 * MUSCLE SmartCard Development ( http://www.linuxnet.com )
5 *
6 * Copyright (C) 1999-2003
7 * David Corcoran <corcoran@linuxnet.com>
8 * Ludovic Rousseau <ludovic.rousseau@free.fr>
9 *
10 * $Id: winscard.h,v 1.13 2004/08/06 12:12:19 rousseau Exp $
11 */
12
13#ifndef __winscard_h__
14#define __winscard_h__
15
16#include <pcsclite.h>
17
18#ifdef __cplusplus
19extern "C"
20{
21#endif
22
23 LONG SCardEstablishContext(DWORD dwScope,
24 LPCVOID pvReserved1, LPCVOID pvReserved2, LPSCARDCONTEXT phContext);
25
26 LONG SCardReleaseContext(SCARDCONTEXT hContext);
27
28 LONG SCardSetTimeout(SCARDCONTEXT hContext, DWORD dwTimeout);
29
30 LONG SCardConnect(SCARDCONTEXT hContext,
31 LPCTSTR szReader,
32 DWORD dwShareMode,
33 DWORD dwPreferredProtocols,
34 LPSCARDHANDLE phCard, LPDWORD pdwActiveProtocol);
35
36 LONG SCardReconnect(SCARDHANDLE hCard,
37 DWORD dwShareMode,
38 DWORD dwPreferredProtocols,
39 DWORD dwInitialization, LPDWORD pdwActiveProtocol);
40
41 LONG SCardDisconnect(SCARDHANDLE hCard, DWORD dwDisposition);
42
43 LONG SCardBeginTransaction(SCARDHANDLE hCard);
44
45 LONG SCardEndTransaction(SCARDHANDLE hCard, DWORD dwDisposition);
46
47 LONG SCardCancelTransaction(SCARDHANDLE hCard);
48
49 LONG SCardStatus(SCARDHANDLE hCard,
50 LPTSTR mszReaderNames, LPDWORD pcchReaderLen,
51 LPDWORD pdwState,
52 LPDWORD pdwProtocol,
53 LPBYTE pbAtr, LPDWORD pcbAtrLen);
54
55 LONG SCardGetStatusChange(SCARDCONTEXT hContext,
56 DWORD dwTimeout,
57 LPSCARD_READERSTATE_A rgReaderStates, DWORD cReaders);
58
59 LONG SCardControl(SCARDHANDLE hCard, DWORD dwControlCode,
60 LPCVOID pbSendBuffer, DWORD cbSendLength,
61 LPVOID pbRecvBuffer, DWORD cbRecvLength, LPDWORD lpBytesReturned);
62
63 LONG SCardTransmit(SCARDHANDLE hCard,
64 LPCSCARD_IO_REQUEST pioSendPci,
65 LPCBYTE pbSendBuffer, DWORD cbSendLength,
66 LPSCARD_IO_REQUEST pioRecvPci,
67 LPBYTE pbRecvBuffer, LPDWORD pcbRecvLength);
68
69 LONG SCardListReaderGroups(SCARDCONTEXT hContext,
70 LPTSTR mszGroups, LPDWORD pcchGroups);
71
72 LONG SCardListReaders(SCARDCONTEXT hContext,
73 LPCTSTR mszGroups,
74 LPTSTR mszReaders, LPDWORD pcchReaders);
75
76 LONG SCardCancel(SCARDCONTEXT hContext);
77
78 LONG SCardGetAttrib(SCARDHANDLE hCard, DWORD dwAttrId, LPBYTE pbAttr,
79 LPDWORD pcbAttrLen);
80
81 LONG SCardSetAttrib(SCARDHANDLE hCard, DWORD dwAttrId, LPCBYTE pbAttr,
82 DWORD cbAttrLen);
83
84 void SCardUnload(void);
85
86#ifdef __cplusplus
87}
88#endif
89
90#endif