API Windows SCardGetStatusChange Valeur retournée: carte inconnue
galeriop
Messages postés1Date d'inscriptionvendredi 26 février 2010StatutMembreDernière intervention26 février 2010
-
26 févr. 2010 à 17:42
emacleri
Messages postés1Date d'inscriptionsamedi 6 mars 2010StatutMembreDernière intervention 6 mars 2010
-
6 mars 2010 à 00:31
Je suis en charge d'une petite application en vb.net qui renvoit l'UID d'une carte passée dans un lecteur. Je parviens à lire l'UID de la carte, suite à un click, mais ne parviens pas à utiliser la fonction SCardGetStatusChange : celle - ci renvoit toujours 0x80100009, indiquant que le lecteur n'est pas connu.
Voici le code:
Dim ReaderState As LPSCARD_READERSTATE
Dim sCurrReader As String
If lbListReaders.SelectedItem = Nothing Then
sCurrReader = SelectedReader
Else
sCurrReader = lbListReaders.SelectedItem
End If
ReaderState.szReader = System.Runtime.InteropServices.Marshal.StringToHGlobalAuto(sCurrReader)
ReaderState.pvUserData = IntPtr.Zero
ReaderState.dwCurrentState = SCARD_STATE_PRESENT
ReaderState.dwEventState = SCARD_STATE_PRESENT
ReaderState.rgbAtr = Nothing
Dim ReturnedContext As Integer
ReturnedContext = SCardGetStatusChange(hContext, 1000, ReaderState, 1)
ReturnedContext prend toujours la valeur 0x80100009
La variable sCurrReader contient bien le nom de l'appareil connecté à l'ordinateur.
Le membre rgbatr de la structure LPSCARD_READERSTATE a été déclaré commme un tableau de byte, szReader et pvUserData sont des pointeurs, dwCurrentState et dwEventState, et IAtrLen sont des integers (au sens VB.net). Je n'ai pas initialisé IAtrLen.