私はusbスマートカードを開発しており、Windows PC / SC APIを使用してそのスマートカードでデータを送信しています。これは私のコードの一部です:
if(SCardConnect(hSC, sCard, SCARD_SHARE_EXCLUSIVE, SCARD_PROTOCOL_T1, &hCard, &dwActiveProtocol) == SCARD_S_SUCCESS)
{
if(SCardTransmit(hCard, SCARD_PCI_T1, pSendBuf, ulSendBufLen, SCARD_PCI_T1, pRecBuf, pulRecBufLen) == SCARD_S_SUCCESS)
{
//do something
}
}
両方のイン/アウト バッファへのサイズとポインタが有効であると確信しています。
dwMaxCCIDMessageLength
デバイス記述子のフィールドが 未満になるまで0x00001000h
問題はなく、プログラムは正常に動作しますが、それをより大きな値 (4kb 以上) に増やすとSCardTransmit
、ERROR_INVALID_PARAMETER 結果コードで失敗します。
現在、pSendBuf
スマートカードでコンテンツが正常に受信され、コンテンツの処理が完了していることはわかっていますが、カードが応答を返したいときにそのエラーが発生し、これは PC/ SCドライバー。
誰でも私を助けることができますか?