Frage

Ich bin ein Windows-Dienst zu schreiben, die Smartcard-Leser handhaben müssen.

Sehr oft, wenn ich versuche, auf eine eingelegte Smart-Card zu verbinden, SCardConnect() nicht mit SCARD_E_SHARING_VIOLATION was im Grunde bedeutet:

  

Die Smart-Card kann nicht aufgrund von anderen hervorragenden Verbindungen zugegriffen werden.

Na gut.

Ich denke, dass ein mindestens ein anderer Prozess versucht zugleich den Smart zuzugreifen. Aber ist es eine Möglichkeit, zu bestimmen, welche (s) Verfahren ist es?

War es hilfreich?

Lösung

Auf Ihrer Stelle würde ich versuchen, mit dem Process Explorer zu sehen an dem Datei-Handles von geöffnet Anwendung , wenn Sie die Smartcard-Leser zugreifen. Um dies zu tun, sollten Sie Ihren Prozess aus und drücken Sie Strg-H (Menü "Ansicht" / "Low Pane View" / "Handes"). Nachdem Sie die Gerätenamen der Smartcard-Leser wissen, dass Sie in der Lage sein, um herauszufinden, andere Prozesse, die das Gerät verwenden , wenn Sie SCARD_E_SHARING_VIOLATION Fehler. Sie sollten nur mit Strg-F ( "Find Handle oder DLL ..." Menü "Suchen" /) Datei-Handle zu finden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top