This handles smartcard reader communications. More...
#include "config.h"#include <stdlib.h>#include <sys/time.h>#include <string.h>#include "pcscd.h"#include "winscard.h"#include "ifdhandler.h"#include "debuglog.h"#include "readerfactory.h"#include "prothandler.h"#include "ifdwrapper.h"#include "atrhandler.h"#include "sys_generic.h"#include "eventhandler.h"#include "utils.h"Go to the source code of this file.
Defines | |
| #define | PROFILE_START |
| #define | PROFILE_END |
| #define | SCARD_PROTOCOL_ANY_OLD 0x1000 |
| used for backward compatibility | |
| #define | SCARD_LAST_CONTEXT 1 |
| Some defines for context stack. | |
| #define | SCARD_NO_CONTEXT 0 |
| Some defines for context stack. | |
| #define | SCARD_EXCLUSIVE_CONTEXT -1 |
| Some defines for context stack. | |
| #define | SCARD_NO_LOCK 0 |
| Some defines for context stack. | |
Functions | |
| LONG | SCardEstablishContext (DWORD dwScope, LPCVOID pvReserved1, LPCVOID pvReserved2, LPSCARDCONTEXT phContext) |
| Creates an Application Context for a client. | |
| LONG | SCardReleaseContext (SCARDCONTEXT hContext) |
| LONG | SCardSetTimeout (SCARDCONTEXT hContext, DWORD dwTimeout) |
| LONG | SCardConnect (SCARDCONTEXT hContext, LPCSTR szReader, DWORD dwShareMode, DWORD dwPreferredProtocols, LPSCARDHANDLE phCard, LPDWORD pdwActiveProtocol) |
| LONG | SCardReconnect (SCARDHANDLE hCard, DWORD dwShareMode, DWORD dwPreferredProtocols, DWORD dwInitialization, LPDWORD pdwActiveProtocol) |
| LONG | SCardDisconnect (SCARDHANDLE hCard, DWORD dwDisposition) |
| LONG | SCardBeginTransaction (SCARDHANDLE hCard) |
| LONG | SCardEndTransaction (SCARDHANDLE hCard, DWORD dwDisposition) |
| LONG | SCardCancelTransaction (SCARDHANDLE hCard) |
| LONG | SCardStatus (SCARDHANDLE hCard, LPSTR mszReaderNames, LPDWORD pcchReaderLen, LPDWORD pdwState, LPDWORD pdwProtocol, LPBYTE pbAtr, LPDWORD pcbAtrLen) |
| LONG | SCardGetStatusChange (SCARDCONTEXT hContext, DWORD dwTimeout, LPSCARD_READERSTATE_A rgReaderStates, DWORD cReaders) |
| LONG | SCardControl (SCARDHANDLE hCard, DWORD dwControlCode, LPCVOID pbSendBuffer, DWORD cbSendLength, LPVOID pbRecvBuffer, DWORD cbRecvLength, LPDWORD lpBytesReturned) |
| LONG | SCardGetAttrib (SCARDHANDLE hCard, DWORD dwAttrId, LPBYTE pbAttr, LPDWORD pcbAttrLen) |
| LONG | SCardSetAttrib (SCARDHANDLE hCard, DWORD dwAttrId, LPCBYTE pbAttr, DWORD cbAttrLen) |
| LONG | SCardTransmit (SCARDHANDLE hCard, LPCSCARD_IO_REQUEST pioSendPci, LPCBYTE pbSendBuffer, DWORD cbSendLength, LPSCARD_IO_REQUEST pioRecvPci, LPBYTE pbRecvBuffer, LPDWORD pcbRecvLength) |
| LONG | SCardListReaders (SCARDCONTEXT hContext, LPCSTR mszGroups, LPSTR mszReaders, LPDWORD pcchReaders) |
| LONG | SCardCancel (SCARDCONTEXT hContext) |
Variables | |
| SCARD_IO_REQUEST | g_rgSCardT0Pci = { SCARD_PROTOCOL_T0, sizeof(SCARD_IO_REQUEST) } |
| SCARD_IO_REQUEST | g_rgSCardT1Pci = { SCARD_PROTOCOL_T1, sizeof(SCARD_IO_REQUEST) } |
| SCARD_IO_REQUEST | g_rgSCardRawPci = { SCARD_PROTOCOL_RAW, sizeof(SCARD_IO_REQUEST) } |
This handles smartcard reader communications.
This is the heart of the M$ smartcard API.
Here are the main server-side functions which execute the requests from the clients.
Definition in file winscard.c.
| #define SCARD_EXCLUSIVE_CONTEXT -1 |
Some defines for context stack.
Definition at line 189 of file winscard.c.
Referenced by SCardConnect(), SCardDisconnect(), and SCardReconnect().
| #define SCARD_LAST_CONTEXT 1 |
Some defines for context stack.
Definition at line 185 of file winscard.c.
Referenced by SCardReconnect().
| #define SCARD_NO_CONTEXT 0 |
Some defines for context stack.
Definition at line 187 of file winscard.c.
Referenced by SCardConnect(), and SCardDisconnect().
| #define SCARD_NO_LOCK 0 |
Some defines for context stack.
Definition at line 191 of file winscard.c.
| LONG SCardEstablishContext | ( | DWORD | dwScope, | |
| LPCVOID | pvReserved1, | |||
| LPCVOID | pvReserved2, | |||
| LPSCARDCONTEXT | phContext | |||
| ) |
Creates an Application Context for a client.
This must be the first function called in a PC/SC application.
| [in] | dwScope | Scope of the establishment. This can either be a local or remote connection.
|
| [in] | pvReserved1 | Reserved for future use. Can be used for remote connection. |
| [in] | pvReserved2 | Reserved for future use. |
| [out] | phContext | Returned Application Context. |
| SCARD_S_SUCCESS | Successful (SCARD_S_SUCCESS) | |
| SCARD_E_INVALID_VALUE | Invalid scope type passed (SCARD_E_INVALID_VALUE) | |
| SCARD_E_INVALID_PARAMETER | phContext is null (SCARD_E_INVALID_PARAMETER) |
Definition at line 217 of file winscard.c.
References PCSCLITE_SVC_IDENTITY, SCARD_E_INVALID_PARAMETER, SCARD_E_INVALID_VALUE, SCARD_S_SUCCESS, SCARD_SCOPE_GLOBAL, SCARD_SCOPE_SYSTEM, SCARD_SCOPE_TERMINAL, and SCARD_SCOPE_USER.
1.6.1