Salve dopo un anno mi ritrovo con un piccolo problema, un pezzo del mio software legge da un lettore di smartcard i dati di una cns e finqui tutto bene il problema è sorto quando sul computer dove sono andato ad installare il software ci sono due lettori attaccati, tramite la chiamata alla DLL pensavo che avrei visto l'elenco dei lettori connessi e quindi avrei potuto scegliere quale usare invece mi da sempre e solo un lettore metre se provo con un tool che ho in elenco ci sono tutti e due i lettori, di seguito riporto la chiamato alla DLL
Declare Function SCardListReaders Lib "WinScard.dll" Alias "SCardListReadersA" ( _
ByVal hContext As Integer, _
ByVal mzGroup As Cstring, _
ByVal ReaderList As Cstring, _
ByRef pcchReaders As Uint32 _
) As Integer
Dim mzGroup As String
Dim Nullo As Cstring = Nil
//
// Mi ritorna la lunghezza del buffer da predisporre in readerlen
//
retval = SCardListReaders(hContext, mzGroup, Nullo, readerlen)
Dim r As New MemoryBlock(readerlen)
Dim ReaderList As Cstring = r
//
// Mi ritorna in ReaderList l'elenco dei lettori Multistringa Nomi separati da Null
//
retval = SCardListReaders(hContext, mzGroup, ReaderList, readerlen)
Con questa chiamata mi dovrebbe restituire i lettori connessi ma mentre la lunghezza del buffer è giusta, nel mio caso 57 byte, nella string ReaderList mi ritrovo solo il primo lettore seguito da tutti Null.
Se avete qualche suggerimento ve ne sarei grato.