Elenca i processi che utilizzano i lettori di smart card
-
29-09-2019 - |
Domanda
sto scrivendo un servizio di Windows che deve gestire i lettori di smart card.
Molto spesso, quando si tenta di connettersi a una smart card inserita, SCardConnect()
fallisce con SCARD_E_SHARING_VIOLATION
che in pratica significa:
La smart card non è possibile accedere a causa di altri collegamenti importanti.
Fiera abbastanza.
Credo che un almeno un altro cerca di processo per accedere a Smart allo stesso tempo. Ma c'è un modo per determinare quale processo (es) è?
Soluzione
Al tuo posto mi avrebbe cercato con la href="http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx" rel="nofollow"> Process Explorer per guardare ai file handle aperti da l'applicazione se si accede ai lettori di smart card. Per fare questo è necessario selezionare il processo e premere Ctrl-H (menu "Visualizza" / "Low riquadro di visualizzazione" / "handes"). Dopo aver individuato il nome del dispositivo dei lettori di smart card si sarà in grado di scoprire altri processi che utilizzano il dispositivo se si riceve l'errore SCARD_E_SHARING_VIOLATION
. Si dovrebbe semplicemente usare Ctrl-F (menu "Trova" / "Trova maniglia o DLL ...") per trovare file handle.