2016-07-25 44 views
0

Ist es über WinSCard api möglich, zu erkennen, wenn sich mehrere Smartcards in einem Chipkartenleser befinden? Ich lese Card IDs, aber wenn es mehrere Karten gibt, wird es mehrdeutig, welche zurückgegeben werden sollte. Daher möchte ich einen solchen Fall verbieten und eine Fehlermeldung zurückgeben.PCSC mehrere Smartcards erkennen

+0

Verwandte [Frage] (http://stackoverflow.com/q/37755043/1435475). – guidot

Antwort

0

Wenn mehrere Karten vorhanden sind, d. H. Mehrere Leser verwenden. Hier winscard Funktion API - SCardListReadersA() den Namen des Lesers Rückkehr/s an das System angeschlossen wie

if one reader then "one reader"NULL|NULL|garbage 
if two reader then "one reader"NULL"second reader"NULL|NULL|garbage 

, wenn Sie an den Leser verbinden Sie müssen den Leser Name in Funktion zu übergeben - SCardConnectA() und Die Antwort (ID), die Sie mit der Funktion SCardTransmit() erhalten, stammt vom Leser und der Karte, mit der Sie sich über die Funktion SCardConnectA() verbinden.

hoffe, diese Informationen werden Ihnen helfen.

+0

Danke für die Antwort. Ich verwende nur einen Kartenleser und möchte die Lesekarten-ID verhindern, wenn mehr als eine Karte im Leser ist. – eko

+0

mehrere Karten in einem einzigen Leser !!! Hat der Leser mehr als eine Chipstation? oder es ist Hybrid-Leser (Kontakt + kontaktlos) – Arjun

+0

Nein, es unterstützt nur das Lesen von jeweils einer Karte und nur kontaktlose Karten. Das Lesermodell ist acr-1252. – eko

0

Der Leser ACR-1252 hat nur eine kontaktlose Schnittstelle. Wenn Sie versuchen, zwei kontaktlose Smartcards gleichzeitig zu verbinden (zu legen), liegt es in der Verantwortung der Leserfirmware, zu entscheiden, welche an ihren Steckplatz angeschlossen wird. Einige Reader-Hersteller erlauben Ihnen, ihre Firmware so zu konfigurieren, dass sie sich in solchen Fällen anders verhält. Ich weiß nicht, ob Ihr Leser solche Fähigkeiten hat, aber ich bezweifle es sehr.