Hello,
I am writing a SmartCard reader driver under
Linux.
Now I will handle a Memory
Card.
I found a problem
After I return the ATR 92 23 10
91
After Pcsc-lite 0.8.4
LONG IFDStatusICC( PREADER_CONTEXT rContext,
PDWORD pdwStatus,
PDWORD pdwProtocol, PUCHAR pucAtr, PDWORD pdwAtrLen ) {
PDWORD pdwProtocol, PUCHAR pucAtr, PDWORD pdwAtrLen ) {
rv = ATRDecodeAtr( &sSmartCard,
pucAtr, MAX_ATR_SIZE );
/* Might be a memory card without an ATR */
if ( rv == 0 ) {
*pdwAtrLen = 0;
} else {
*pdwAtrLen = sSmartCard.ATR.Length;
}
/* Might be a memory card without an ATR */
if ( rv == 0 ) {
*pdwAtrLen = 0;
} else {
*pdwAtrLen = sSmartCard.ATR.Length;
}
}
it will make the return ATR length
zero
This will cause EHSpawnEventHandler: power
up fail
#ifdef
PCSC_DEBUG
DebugLogC("EHSpawnEventHandler: Card inserted into %s\n",
lpcReader, __FILE__, __LINE__);
DebugLogC("EHSpawnEventHandler: Card inserted into %s\n",
lpcReader, __FILE__, __LINE__);
if ( rContext->dwAtrLen > 0 )
{
DebugLogD("EHSpawnEventHandler: Card insertion ATR:\n\t",
rContext->ucAtr, rContext->dwAtrLen, __FILE__, __LINE__ );
} else {
DebugLogA("EHSpawnEventHandler: Error powering up card.\n",
__FILE__, __LINE__);
}
#endif
DebugLogD("EHSpawnEventHandler: Card insertion ATR:\n\t",
rContext->ucAtr, rContext->dwAtrLen, __FILE__, __LINE__ );
} else {
DebugLogA("EHSpawnEventHandler: Error powering up card.\n",
__FILE__, __LINE__);
}
#endif
Does this is MUSCLE issue in Memory
Card?
Or anybody can tell me, how does MUSCLE to
support Memory Card.
Randy
Chen
(02)2545-9095
#41
[EMAIL PROTECTED]