67 PUCHAR pucAtr, DWORD dwLength)
75 LogXxd(PCSC_LOG_DEBUG,
"ATR: ", pucAtr, dwLength);
90 if ((pucAtr[0] != 0x3F) && (pucAtr[0] != 0x3B))
100 Y1i = pucAtr[1] >> 4;
109 short TAi, TBi, TCi, TDi;
111 TAi = (Y1i & 0x01) ? pucAtr[p++] : -1;
112 TBi = (Y1i & 0x02) ? pucAtr[p++] : -1;
113 TCi = (Y1i & 0x04) ? pucAtr[p++] : -1;
114 TDi = (Y1i & 0x08) ? pucAtr[p++] : -1;
123 "TA%d: %02X, TB%d: %02X, TC%d: %02X, TD%d: %02X",
124 i, TAi, i, TBi, i, TCi, i, TDi);
154 Log2(PCSC_LOG_DEBUG,
"T=%d Protocol Found", T);
182 if ((2 == i) && (TAi >= 0))
186 Log2(PCSC_LOG_DEBUG,
"Specific mode: T=%d", T);
221 Log3(PCSC_LOG_DEBUG,
"CurrentProtocol: T=%d, AvailableProtocols: %d",
short ATRDecodeAtr(int *availableProtocols, int *currentProtocol, PUCHAR pucAtr, DWORD dwLength)
parse an ATR
This keeps track of smart card protocols, timing issues and Answer to Reset ATR handling.
This keeps a list of defines for pcsc-lite.
#define SCARD_PROTOCOL_UNDEFINED
protocol not set
#define SCARD_PROTOCOL_T1
T=1 active protocol.
#define SCARD_PROTOCOL_T0
T=0 active protocol.
#define MAX_ATR_SIZE
Maximum ATR size.
#define SCARD_PROTOCOL_T15
T=15 protocol.