@@ -37,6 +37,7 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3737#include <string.h>
3838
3939#include <winscard.h>
40+ #include <reader.h>
4041
4142/* PCSC error message pretty print */
4243#define PCSC_ERROR (rv , text ) \
@@ -266,6 +267,24 @@ int main(int argc, char *argv[])
266267 rv = SCardEndTransaction (hCard , SCARD_LEAVE_CARD );
267268 PCSC_ERROR (rv , "SCardEndTransaction" )
268269
270+ /* get Attribute */
271+ dwAtrLen = sizeof (pbAtr );
272+ rv = SCardGetAttrib (hCard , SCARD_ATTR_ATR_STRING , pbAtr , & dwAtrLen );
273+ printf ("Received: " );
274+ for (i = 0 ; i < dwAtrLen ; i ++ )
275+ printf ("%02X " , pbAtr [i ]);
276+ printf ("\n" );
277+ PCSC_ERROR (rv , "SCardGetAttrib" )
278+
279+ /* control */
280+ rv = SCardControl (hCard , CM_IOCTL_GET_FEATURE_REQUEST , NULL , 0 ,
281+ pbRecvBuffer , sizeof pbRecvBuffer , & dwRecvLength );
282+ printf ("Received: " );
283+ for (i = 0 ; i < dwRecvLength ; i ++ )
284+ printf ("%02X " , pbRecvBuffer [i ]);
285+ printf ("\n" );
286+ PCSC_ERROR (rv , "SCardControl" )
287+
269288 /* card disconnect */
270289 rv = SCardDisconnect (hCard , SCARD_UNPOWER_CARD );
271290 PCSC_ERROR (rv , "SCardDisconnect" )
0 commit comments