Specifications

Smart Cards Lab COMPGA12 University College London
printf("APDU: ");
print_hex_nocr(bSend,dwSend);
printf("\n");
lReturn = SCardTransmit(hCardHandle,
pioSendPci,bSend,dwSend,pioRecvPci,bRecv,&dwRecv );
if ( SCARD_S_SUCCESS != lReturn )
{
PCSC_ERROR(lReturn, "SCardTransmit")
return -3; // or other appropriate error action
}
else
{
printf(" RE: ");
print_hex_nocr(bRecv,dwRecv);
printf("\n");
};
}
lReturn = SCardEndTransaction(hCardHandle,SCARD_UNPOWER_CARD);
if ( SCARD_S_SUCCESS != lReturn )
PCSC_ERROR(lReturn, "SCardEndTransaction")
lReturn = SCardDisconnect(hCardHandle,SCARD_RESET_CARD);
if ( SCARD_S_SUCCESS != lReturn )
{
PCSC_ERROR(lReturn, "SCardDisconnect")
return -4; // Or other appropriate action.
};
}
lReturn2 = SCardFreeMemory( hContext,
pmszReaders );
if ( SCARD_S_SUCCESS != lReturn2 )
PCSC_ERROR(lReturn2, "SCardFreeMemory")
}
//When done,
lReturn = SCardReleaseContext(hContext);
if ( SCARD_S_SUCCESS != lReturn )
PCSC_ERROR(lReturn2, "SCardReleaseContext")
};
return 0;
};
//#include <pcsclite.h>//needed only for pcsc_stringify_error
c
Nicolas T. Courtois 2009-10