Liste des processus qui utilisent les lecteurs de cartes à puce
-
29-09-2019 - |
Question
J'écris un service Windows qui doit gérer les lecteurs de cartes à puce.
Très souvent, lorsque je tente de se connecter à une carte à puce insérée, SCardConnect()
échoue avec SCARD_E_SHARING_VIOLATION
qui essentiellement des moyens:
La carte à puce ne peut pas être accessible en raison d'autres connexions en cours.
est juste.
Je suppose qu'au moins un autre essaie de processus pour accéder à la puce en même temps. Mais est-il un moyen de déterminer quels processus (s) il est?
La solution
Sur votre place, j'essayer le Process Explorer pour regarder les descripteurs de fichiers ouverts par votre application si vous accédez aux lecteurs de cartes à puce. Pour ce faire, vous devez sélectionner votre processus et appuyez sur Ctrl-H (menu "Affichage" / "Low Voir le volet" / "Handes"). Une fois que vous connaissez le nom du périphérique des lecteurs de cartes à puce, vous serez en mesure de savoir d'autres processus qui utilisent l'appareil si vous recevez une erreur de SCARD_E_SHARING_VIOLATION
. Vous devez simplement utiliser Ctrl-F (menu "Rechercher" / "Trouver Handle ou DLL ...") pour trouver la poignée de fichiers.