winscard を使用して C++ コードを作成しています。Scardtransmit でデータのみを送信するか、データのみを受信するコマンドを送信しても問題ないことに気付きました。データを送信したり、正しい応答を取得したりできます。ただし、コマンドがデータを送信し、応答を期待する場合、常に 61xx が返されます。エラー コード 61xx は、Le が正しくない xx バイトの応答があることを意味し、返された値 xx を含むすべての可能な Le をチェックしましたが、何も変わりません。たとえば、Apdu の形式を CLA INS P1 P2 Lc Data Le とすると、61XX が返され、CLA INS P1 P2 Lc Data XX が送信され、再び 61XX が返されます。
Javaなどのツールを使ってカードをチェックしたところ、カードに何もないことを確認しました。
私の知る限り、Lc と Le には 1 バイトの P3 が割り当てられています。DATADATA コマンドから (SW1SW2 以外で) 応答を取得する方法はありますか?