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);
115 Log2(PCSC_LOG_INFO,
"PTS not supported by driver, using T=%d",
119 Log2(PCSC_LOG_INFO,
"PTS protocol not supported, using T=%d",
123 Log3(PCSC_LOG_INFO,
"PTS failed (%ld), using T=%d", rv,
130 return SET_PROTOCOL_PPS_FAILED;
LONG IFDSetPTS(READER_CONTEXT *rContext, DWORD dwProtocol, UCHAR ucFlags, UCHAR ucPTS1, UCHAR ucPTS2, UCHAR ucPTS3)
Set the protocol type selection (PTS).
#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.
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.
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