Вопрос

Я пишу сервис Windows, который должен обрабатывать смарт -карты.

Очень часто, когда я пытаюсь подключиться к вставленной смарт -карте, SCardConnect() терпит неудачу с SCARD_E_SHARING_VIOLATION что в основном означает:

Смарт -карта не может быть доступна из -за других выдающихся подключений.

Справедливо.

Я предполагаю, что еще минимум один процесс пытается одновременно получить доступ к Smart. Но есть ли способ определить, какой это процесс (ES)?

Это было полезно?

Решение

На вашем месте я бы попробовал с Процесс -исследователь чтобы посмотреть на ручки файла, открытые ваше приложение Если вы получаете доступ к читателям смарт -карт. Для этого вы должны выбрать свой процесс и нажать Ctrl-H (Меню «Просмотр»/«Низкий вид вида»/«Руки»). После того, как вы узнаете название устройства смарт -карт, вы сможете узнать Другие процессы, которые используют устройство Если вы получите SCARD_E_SHARING_VIOLATION ошибка. Вы должны просто использовать Ctrl-F (Меню "Найти"/"Найти ручку или dll ..."), чтобы найти ручку файла.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top