Question

Je mets à jour une application de carte à puce (.net 2 en utilisant de winscard.dll) pour fonctionner sous Windows 7. Seuls des changements mineurs sont nécessaires pour 32bit. Sous 64bit, il semble y avoir un coup d'appel SCardConnectA - il se trouve et ne retourne pas. L'arrêt du service de carte à puce / retirer la carte permet à l'application complète.

Les utilisations d'applications .net Interop Statuer ainsi ce, j'ai essayé d'appeler scardconnectA d'un C ++ dll avec le même résultat. Cela se produit sur les appareils TODOS et Gemalto. Jusqu'à présent, dans l'application, il a clairement installation et a parlé au lecteur et de la présence déterminée d'une carte.

Toutes les suggestions sur la façon d'enquêter? Y at-il un délai d'attente je peux appliquer ici?

Merci,

Davy Mitchell

Était-ce utile?

La solution 4

J'ai maintenant une solution (mes excuses pour prendre quelques jours pour l'obtenir ici).

apparaît il y a un changement de comportement dans 64bit Windows 7. Il y avait un BeginTransaction sans EndTransaction dans l'application et cela semble avoir été l'origine du blocage. Pour une raison quelconque de Windows 32bit pardonnait cela.

Merci encore à tous ceux qui ont laissé un message.

Davy Mitchell

Autres conseils

Vous auriez à travailler avec les fabricants respectifs pour arriver à une solution. Vous ne l'avez pas postez extrait pour vérifier que vous avez fait quelque chose de mal, je doute si vous avez revérifié le comportement dans un programme natif. Et là quelques façons de tâtonner les arguments. En utilisant la version Unicode, comme tout le monde le fait, serait une chance à distance.

Ceci est une sorte difficile de demande d'assistance, vous travaillez avec deux parties, Microsoft et le fournisseur de la carte, ils sont susceptibles de pointer du doigt les uns les autres. Votre seul véritable espoir pour une solution rapide est de forcer votre application à fonctionner en mode 32 bits en définissant le paramètre de la plate-forme cible pour x86.

La plupart des lecteurs de cartes inlcude un installateur séparé pour pilotes 64 bits et 32 ??bits pilotes - gemalto ne définitivement ce (voir http://support.gemalto.com/?id=46 pour une page d'exemple avec plusieurs programmes d'installation de lecteur pour différentes architectures).

Avez-vous vérifié deux fois pour vous assurer que vous utilisez pilotes 64 bits sous le système d'exploitation 64 bits?

  • Pourquoi utilisez-vous SCardConnectA au lieu de SCardConnect?
  • Un SCardConnect suspendu peut signifier qu'il ya une autre application faire quelque chose avec cette carte, êtes-vous sûr que ce n'est pas le cas?
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top