61 DWORD dwPreferred, UCHAR ucAvailable, UCHAR ucDefault)
69 return SET_PROTOCOL_WRONG_ARGUMENT;
72 if (! (dwPreferred & ucAvailable))
86 Log2(PCSC_LOG_ERROR,
"Protocol T=%d requested but unsupported by the card",
88 return SET_PROTOCOL_WRONG_ARGUMENT;
95 dwPreferred &= ucAvailable;
105 return SET_PROTOCOL_WRONG_ARGUMENT;
107 Log2(PCSC_LOG_INFO,
"Attempting PTS to T=%d",
109 rv =
IFDSetPTS(rContext, ucChosen, 0x00, 0x00, 0x00, 0x00);
118 case IFD_ERROR_NOT_SUPPORTED:
120 if (protocol != dwPreferred)
123 "Set PTS failed (%ld). Using T=%d", rv,
129 Log2(PCSC_LOG_INFO,
"PTS protocol failed (%ld)", rv);
130 protocol = SET_PROTOCOL_PPS_FAILED;
136 Log3(PCSC_LOG_INFO,
"Set PTS failed (%ld). Using T=%d", rv,
141 Log2(PCSC_LOG_INFO,
"Set PTS failed (%ld)", rv);
147 protocol = SET_PROTOCOL_PPS_FAILED;
#define IFD_NOT_SUPPORTED
request is not supported
This handles protocol defaults, PTS, etc.
This wraps the dynamic ifdhandler functions.
#define SCARD_PROTOCOL_T1
T=1 active protocol.
RESPONSECODE IFDSetPTS(READER_CONTEXT *rContext, DWORD dwProtocol, UCHAR ucFlags, UCHAR ucPTS1, UCHAR ucPTS2, UCHAR ucPTS3)
Set the protocol type selection (PTS).
This keeps track of smart card protocols, timing issues and Answer to Reset ATR handling.
#define SCARD_PROTOCOL_T0
T=0 active protocol.
This handles card insertion/removal events, updates ATR, protocol, and status information.
#define SCARD_PROTOCOL_UNDEFINED
protocol not set
DWORD PHSetProtocol(struct ReaderContext *rContext, DWORD dwPreferred, UCHAR ucAvailable, UCHAR ucDefault)
Determine which protocol to use.
This keeps a list of defines for pcsc-lite.
This keeps track of a list of currently available reader structures.
#define IFD_PROTOCOL_NOT_SUPPORTED
requested protocol not supported
#define IFD_SUCCESS
no error