#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 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 |
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.