40 DWORD dwPreferred, UCHAR ucAvailable, UCHAR ucDefault)
48 return SET_PROTOCOL_WRONG_ARGUMENT;
51 if (! (dwPreferred & ucAvailable))
65 Log2(PCSC_LOG_ERROR,
"Protocol T=%d requested but unsupported by the card",
67 return SET_PROTOCOL_WRONG_ARGUMENT;
74 dwPreferred &= ucAvailable;
84 return SET_PROTOCOL_WRONG_ARGUMENT;
86 Log2(PCSC_LOG_INFO,
"Attempting PTS to T=%d",
87 (SCARD_PROTOCOL_T0 == ucChosen ? 0 : 1));
88 rv =
IFDSetPTS(rContext, ucChosen, 0x00, 0x00, 0x00, 0x00);
94 Log2(PCSC_LOG_INFO,
"PTS not supported by driver, using T=%d",
95 (SCARD_PROTOCOL_T0 == protocol) ? 0 : 1);
98 Log2(PCSC_LOG_INFO,
"PTS protocol not supported, using T=%d",
99 (SCARD_PROTOCOL_T0 == protocol) ? 0 : 1);
102 Log3(PCSC_LOG_INFO,
"PTS failed (%ld), using T=%d", rv,
103 (SCARD_PROTOCOL_T0 == protocol) ? 0 : 1);
109 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