// smclib.h
typedef struct _SCARD_CARD_CAPABILITIES {
BOOLEAN InversConvention;
ULONG etu;
struct {
UCHAR Buffer[64];
UCHAR Length;
} ATR;
struct {
UCHAR Buffer[16];
UCHAR Length;
} HistoricalChars;
PCLOCK_RATE_CONVERSION ClockRateConversion;
PBIT_RATE_ADJUSTMENT BitRateAdjustment;
UCHAR Fl;
UCHAR Dl;
UCHAR II;
UCHAR P;
UCHAR N;
ULONG GT;
struct {
ULONG Supported;
ULONG Selected;
} Protocol;
struct {
UCHAR WI;
ULONG WT;
} T0;
struct {
UCHAR IFSC;
UCHAR CWI;
UCHAR BWI;
UCHAR EDC;
ULONG CWT;
ULONG BWT;
ULONG BGT;
} T1;
PTS_DATA PtsData;
UCHAR Reserved[100 - sizeof(PTS_DATA)];
} SCARD_CARD_CAPABILITIES, *PSCARD_CARD_CAPABILITIES;
View the official Windows Driver Kit DDI referenceNo description available.
The SCARD_CARD_CAPABILITIES structure declaration defines the data that is stored in the CardCapabilites member of the SMARTCARD_EXTENSION structure and holds all information that is specific to the particular smart card that is currently used.
InversConventionContains a flag to indicate that the current smart card uses the inverse convention.
etuContains the elementary time unit (ETU). The ETU indicates the space of transmission time occupied by a single bit of data.
ATRA structure with the following members:
ATR.BufferA pointer to the buffer that receives the answer-to-reset (ATR) information that the smart card provides to the smart card reader after a warm or cold reset.
ATR.LengthContains the length, in bytes, of the ATR.
HistoricalCharsA structure with the following members:
HistoricalChars.BufferContains the historical characters. Historical characters designate general information, such as the smart card manufacturer, the chip inserted in the smart card, the masked ROM in the chip, and the life cycle of the smart card. For more information about historical characters, see the ISO 7816-3 Specification and part 4 of the ISO 7816 Specification. (This resource may not be available in some languages
and countries.)
HistoricalChars.LengthIndicates the length, in bytes, of the historical character information.
ClockRateConversionContains the clock conversion rate table. Using the clock rate conversion factor, F1, as an index in this array yields the maximum frequency that is allowed. For more information about clock conversion rate, see the ISO 7816-3 specification. (This resource may not be available in some languages
and countries.)
BitRateAdjustmentContains the bit rate adjustment table. Using the bit rate adjustment factor, D1, as an index into this array yields the maximum bit rate that is allowed. t rate. For more information about the bit rate adjustment factor, see the ISO 7816-3 specification. (This resource may not be available in some languages
and countries.)
FlContains the clock rate conversion. This factor is used as an index into a table of maximum operating frequencies. When the smart card is reset, the smart card driver library uses this value to calculate a new clock frequency.
DlContains the bit rate adjustment. When the smart card is reset, the smart card driver library uses this value to calculate a new data bit rate.
IIContains the maximum programming current.
PContains the programming voltage in units of 0.1 volts.
NContains the extra guard time in units of the ETU. The ETU indicates the space of transmission time occupied by a single bit of data. The guard time is the minimum space of transmission time that separates two consecutive characters.
GTContains the guard time, in units of microseconds (including the extra guard time), which is the minimum delay between two consecutive characters.
ProtocolA structure with the following members:
Protocol.SupportedContains a bitmask of the supported protocols.
Protocol.SelectedContains the protocol that is selected.
T0A structure with the following members:
T0.WIContains the work-waiting integer for the T=0 protocol.
T0.WTContains the work-waiting time, in microseconds, for the T=0 protocol, which is the maximum delay allowed between two consecutive characters.
T1A structure with the following members:
T1.IFSCContains the size, in bytes, of the card's information field.
T1.CWIContains the character-waiting integer.
T1.BWIContains the block-waiting integer.
T1.EDCContains the error detection code.
T1.CWTContains the character-waiting time, in microseconds, for the T=1 protocol, which is the maximum delay that is allowed between two consecutive characters.s.
T1.BWTContains the block-waiting time, in microseconds, for the T=1 protocol. This is the maximum delay between the end of a block and the start of the next block that is sent in the opposite direction.
T1.BGTContains the block-guarding time, in microseconds, for the T=1 protocol. This is the minimum delay between the end of a block and the start of the next block that is sent in the opposite direction.
PtsDataContains a PTS_DATA structure that holds all the information that is required to perform a protocol type selection (PTS) request for the inserted smart card.art card.
ReservedReserved.
The SCARD_CARD_CAPABILITIES structure describes the capabilities of the inserted smart card. If the reader driver uses the smart card driver library, ATR is the only member that the reader driver should populate. The driver library will automatically update all other fields when it receives an IOCTL_SMARTCARD_SET_PROTOCOL request.