Refer to the link ​​C/SC Winscard SCardTransmit error 0x00000016 returned​​​, I had resolved the 0x00000016 return error by setting the 2nd parameter as SCARD_PCI_T0 or SCARD_PCI_RAW, however I still encounter error 0x00000016 on SCM Reader, model number SDI010. Refer to the link ​​Re: SCardTransmit returning SCARD_E_NOT_TRANSACTED​​, the latest code will try all the three types of the parameters, SCARD_PCI_T0, SCARD_PCI_T1, and SCARD_PCI_RAW, the problem was resolved, working properly so far, the code is as below,

if (SCardTransmit(m_hSCard, SCARD_PCI_T0, send, sendLen, NULL, recv, &recvLen)) {
lErrCode = SCardTransmit(m_hSCard, SCARD_PCI_RAW, send, sendLen, NULL, recv, &recvLen);
if (lErrCode){
lErrCode = SCardTransmit(m_hSCard, SCARD_PCI_T1, send, sendLen, NULL, recv, &recvLen);
}
} else {
lErrCode = 0x0;
}

Reference

​PC/SC Winscard SCardTransmit error 0x00000016 returned​​​​​

​Re: SCardTransmit returning SCARD_E_NOT_TRANSACTED​