In the PC/SC architecture, the SCardTransmit function implements the dialog between an application and a smart card, the coupler being only a "passive" gateway.
The coupler transmits frames in both directions, without any specific processing.
The dialog MUST follow the ISO 7816-4 standard for APDU format, and this constraint is enforced by Windows' PC/SC subsystem:
[CLA] [INS] [P1] [P2] <Lc DataIn> <[Le]>in application-to-card (uplink) direction
<DataOut> [SW1] [SW2]in card-to-application (downlink) direction.
In order to be able to work with smart cards that do not respect this constraint (for instance, the 1st generation of Desfire cards which uses a custom APDU format) and with cards that are not smart cards at all (e.g. wired-logic cards), the SpringCore couplers feature an APDU Interpreter that translates ISO 7816-4 APDUs into commands that are significant for the very card under operation.
CLA byte of the APDU Interpreter
The APDU Interpreter processes all commands going through SCardTransmit with the
CLA field set to