ACR30 Smartcard writer. Memory card writing I2C protocol
-
I'm writing here out of desperation, I know it's not a general C++ topic but I've been unable to find any smartcard specific forums after a lot of searching. I'm trying to talk to an ACR30 USB smartcard reader via the PC/SC Microsoft Winsmcrd.dll api. The smartcard manufacturer is ACS and they're good for obtaining API manuals etc but the examples provided just won't work. The smartcard model I'm using is a AT24C16, which is listed amongst the compatible cards. This card is a memory card and PC/SC doesn't allow for memory card writing, but ACS have provided methods to do this and written a manual specifically for PC/SC memory card access. for example, the following copied code (except for reader name) returns error code 0x80100066 "The smart card is not responding to a reset" ie no response from the card rv = SCardConnect( hContext, "ACS USB 0", SCARD_SHARE_EXCLUSIVE, SCARD_PROTOCOL_RAW, &hCard, &dwActiveProtocol); if I change the call to the following, I receive a successful response rv = SCardConnect( hContext, "ACS USB 0", SCARD_SHARE_DIRECT, SCARD_PROTOCOL_UNDEFINED, &hCard, &dwActiveProtocol); but because I'm using the different defines I don't know what sort of knock on effect this is having on the remaining api functions I call. Pretty well all of them aren't working as I'd expect. I think this is a common model for smartcard developers, so I was wondering if there's anyone else out there who has worked successfully with this unit and who could give me some guidance. many thanks
-
I'm writing here out of desperation, I know it's not a general C++ topic but I've been unable to find any smartcard specific forums after a lot of searching. I'm trying to talk to an ACR30 USB smartcard reader via the PC/SC Microsoft Winsmcrd.dll api. The smartcard manufacturer is ACS and they're good for obtaining API manuals etc but the examples provided just won't work. The smartcard model I'm using is a AT24C16, which is listed amongst the compatible cards. This card is a memory card and PC/SC doesn't allow for memory card writing, but ACS have provided methods to do this and written a manual specifically for PC/SC memory card access. for example, the following copied code (except for reader name) returns error code 0x80100066 "The smart card is not responding to a reset" ie no response from the card rv = SCardConnect( hContext, "ACS USB 0", SCARD_SHARE_EXCLUSIVE, SCARD_PROTOCOL_RAW, &hCard, &dwActiveProtocol); if I change the call to the following, I receive a successful response rv = SCardConnect( hContext, "ACS USB 0", SCARD_SHARE_DIRECT, SCARD_PROTOCOL_UNDEFINED, &hCard, &dwActiveProtocol); but because I'm using the different defines I don't know what sort of knock on effect this is having on the remaining api functions I call. Pretty well all of them aren't working as I'd expect. I think this is a common model for smartcard developers, so I was wondering if there's anyone else out there who has worked successfully with this unit and who could give me some guidance. many thanks
ClaireH, just from looking at your snippit, It appears your using the api functions for the usbr30.dll and not the WDM. Check this: http://www.txsystems.com/downloads/ACR30U_PCSC_Memory_Card_Access_Reference_Manual(101).pdf[^] And Here: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secauthn/security/scardcontrol.asp[^] Let me know, if I can help further, progload -- modified at 18:41 Thursday 15th December, 2005 Sorry I forgot this workgroup you may be interested in: http://www.pcscworkgroup.com/[^] progload